dil: (Default)
dil ([personal profile] dil) wrote2017-08-18 05:53 pm

Задачка для сисадминов

Задачка по сути настолько элементарная, что я даже и ответ писать не буду, сами догадайтесь..
Но её как раз можно использовать для проверки квалификации сисадминов ;)

Условие:
Вы запустили в линуксе копирование большого объёма данных (скажем, с одного диска на другой) с помощью команды dd.
Чтобы данные на ходу не менялись, этот dd запустили в однопользовательском режиме, в котором у вас всего один терминал.
Данных много, поэтому dd копирует их довольно долго.

Вопрос:
Как посмотреть, сколько данных уже скопировалось, и с какой скоростью происходит копирование, чтоб можно было посчитать, сколько примерно времени ещё придётся подождать до конца?

Подсказка:
dd умеет выдавать текущее состояние — сколько блоков уже прочиталось, сколько записалось, какой у них общий объём, и какая выходит скорость копирования — если в него послать сигнал USR1.

Помнится, в древние времена во FreeBSD это можно было сделать, просто нажав Ctrl-T, но в нынешнем линуксе это не работает. Послать сигнал из другого терминала тоже нельзя, ибо терминал только один. Зайти в эту машинку по сети тоже невозможно, ибо однопользовательский режим, сеть не подключена.

Так как же послать этот сигнал, если единственный имеющийся терминал занят этим самым dd?

P.S. Я щас сам как раз это и делаю, копируя один большой диск на другой ;)

Оригинал этой записи в личном блоге.

[personal profile] aleksey 2017-08-18 05:53 pm (UTC)(link)
^Z
pkill -USR1 ^dd$

Это сходу, а вот что ответ будет после fg я сразу не сообразил.


Edited 2017-08-18 17:56 (UTC)
mcjabberwock: (meow)

[personal profile] mcjabberwock 2017-08-18 06:08 pm (UTC)(link)
Вот за что я ненавижу линух.
Юниксообразная система. Примерно то же, что сыроподобный продукт.
Тьфу!
kranov: (Default)

[personal profile] kranov 2017-08-18 07:14 pm (UTC)(link)
не ответ, но

pv source > target

pv source |dd of=target count ....
kranov: (Default)

[personal profile] kranov 2017-08-18 09:06 pm (UTC)(link)
я pv в основном использую не по назначению, я ограничиваю скорость ввода вывода.

$MYSQLDUMP $db |/usr/bin/pv -q --rate-limit 4M|gzip -4|
kranov: (Default)

[personal profile] kranov 2017-08-19 12:45 am (UTC)(link)
иногда чтобы приложениям хоть какой-то диск доставался, в этом конретном случае этот сервер (ec2.micro) занимается примерно всем, а mysql это сервис амазона (RDS), забивалась сеть (выедались все network credits и сервер переставал вообще отзываться), потому что сервер одновремено сосал из rds, складывал бекап S3 (gzip -4|aws s3 cp - ), параллельно бекапил в s3 с помощью rsnapshot другие сервера, и сосал и бекапил jira и confluence и мониторил пару тыщ хостов nagios-м. Поэтому я всем бекапам задушил ввод/вывод, теперь они бекапят дольше, но друг другу не мешают и куча bandwidth свободна.
dmarck: (Default)

[personal profile] dmarck 2017-08-18 09:53 pm (UTC)(link)
Ну, да, разница в наличии и неналичии SIGINFO.

[identity profile] lazyboa.livejournal.com 2017-08-19 09:09 am (UTC)(link)
dd status=progress до фри еще не добрался разве?

[personal profile] olegnet 2017-08-19 02:44 pm (UTC)(link)
Ctrl-T кстати прекрасно работает в MacOS X, что не удивительно.

[personal profile] olegnet 2017-08-19 07:35 pm (UTC)(link)
Это был британский VPN :) Сейчас в отпуске около Барселоны. В этих апартах интернет странный временами, а через VPN работает нормально.

[personal profile] olegnet 2017-08-20 09:07 pm (UTC)(link)
всё там же, где и раньше.
надо бы валить, как все. в одном Лондоне вон уже десятки бывших коллег. да как-то всё не складывается пока.