Написал мне один мой товарищ, и попросил посмотреть, почему его скрипт, работающий везде, некорректно отработал на одной конкретной машине. Начал смотреть, и обнаружилось вот что - в одной из функций, использовалась конструкция вида:
Скрипт без проблем отрабатывал на машинах с англоязычными версиями систем, но при запуске на русскоязычной версии, которая каким-то образом оказалась на сервере, эта конструкция не отрабатывала - grep не выдавал никаких результатов, ведь вывод dd осуществлялся на русском языке.
Решилось всё банальным добавлением 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 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