Задачка по сути настолько элементарная, что я даже и ответ писать не буду, сами догадайтесь..
Но её как раз можно использовать для проверки квалификации сисадминов ;)
Условие:
Вы запустили в линуксе копирование большого объёма данных (скажем, с одного диска на другой) с помощью команды dd.
Чтобы данные на ходу не менялись, этот dd запустили в однопользовательском режиме, в котором у вас всего один терминал.
Данных много, поэтому dd копирует их довольно долго.
Вопрос:
Как посмотреть, сколько данных уже скопировалось, и с какой скоростью происходит копирование, чтоб можно было посчитать, сколько примерно времени ещё придётся подождать до конца?
Подсказка:
dd умеет выдавать текущее состояние — сколько блоков уже прочиталось, сколько записалось, какой у них общий объём, и какая выходит скорость копирования — если в него послать сигнал USR1.
Помнится, в древние времена во FreeBSD это можно было сделать, просто нажав Ctrl-T, но в нынешнем линуксе это не работает. Послать сигнал из другого терминала тоже нельзя, ибо терминал только один. Зайти в эту машинку по сети тоже невозможно, ибо однопользовательский режим, сеть не подключена.
Так как же послать этот сигнал, если единственный имеющийся терминал занят этим самым dd?
P.S. Я щас сам как раз это и делаю, копируя один большой диск на другой ;)
Оригинал этой записи в личном блоге.
no subject
pkill -USR1 ^dd$
Это сходу, а вот что ответ будет после fg я сразу не сообразил.
no subject
no subject
Юниксообразная система. Примерно то же, что сыроподобный продукт.
Тьфу!
no subject
no subject
pv source > target
pv source |dd of=target count ....
no subject
Package: pv
Version: 1.5.7-2
Installed-Size: 162
...
Description-en: Shell pipeline element to meter data passing through
pv (Pipe Viewer) can be inserted into any normal pipeline between two
processes to give a visual indication of how quickly data is passing through,
how long it has taken, how near to completion it is, and an estimate of how
long it will be until completion.
.
To use it, insert it in a pipeline between two processes, with the
appropriate options. Its standard input will be passed through to its
standard output and progress will be shown on standard error.
no subject
$MYSQLDUMP $db |/usr/bin/pv -q --rate-limit 4M|gzip -4|
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
А ты нынче в Лондон перебрался?
no subject
no subject
no subject
надо бы валить, как все. в одном Лондоне вон уже десятки бывших коллег. да как-то всё не складывается пока.
no subject
Кстати, можно и в нашу деревню попробовать. Хоть и не Лондон, но по-моему, вовсе неплохо.