Записки админа
12.6K subscribers
628 photos
28 videos
221 files
2.4K links
Пишу о Linux и администрировании серверов.

Связаться с автором: @servers

Заметки в браузере: https://sysadmin.pm/

Буст канала: https://tttttt.me/sysadminnotes?boost
Download Telegram
Написал мне один мой товарищ, и попросил посмотреть, почему его скрипт, работающий везде, некорректно отработал на одной конкретной машине. Начал смотреть, и обнаружилось вот что - в одной из функций, использовалась конструкция вида:

dd if=/dev/urandom of=$file bs=1024K count=10 2>&1 | grep copied

Скрипт без проблем отрабатывал на машинах с англоязычными версиями систем, но при запуске на русскоязычной версии, которая каким-то образом оказалась на сервере, эта конструкция не отрабатывала - grep не выдавал никаких результатов, ведь вывод dd осуществлялся на русском языке.

# dd if=/dev/urandom of=file bs=1024K count=1 2>&1
1+0 записей получено
1+0 записей отправлено
скопировано 1048576 байт (1,0 MB), 0,00954741 c, 110 MB/c


Решилось всё банальным добавлением LANG=C перед запуском dd:

# LANG=C dd if=/dev/urandom of=file bs=1024K count=1 2>&1 | grep copied
1048576 bytes (1.0 MB) copied, 0.00934529 s, 112 MB/s

Ну а товарищ ушёл думать, как этот момент оптимизировать. Такое вот скриптописательство.

#будничное #dd #bash
⚙️ dd, bs= and why you should use conv=fsync. Интересный кейс, и ссылки внутри хорошие. #напочитать #dd #filesystem