Задачка по сути настолько элементарная, что я даже и ответ писать не буду, сами догадайтесь..
Но её как раз можно использовать для проверки квалификации сисадминов ;)
Условие:
Вы запустили в линуксе копирование большого объёма данных (скажем, с одного диска на другой) с помощью команды dd.
Чтобы данные на ходу не менялись, этот dd запустили в однопользовательском режиме, в котором у вас всего один терминал.
Данных много, поэтому dd копирует их довольно долго.
Вопрос:
Как посмотреть, сколько данных уже скопировалось, и с какой скоростью происходит копирование, чтоб можно было посчитать, сколько примерно времени ещё придётся подождать до конца?
Подсказка:
dd умеет выдавать текущее состояние — сколько блоков уже прочиталось, сколько записалось, какой у них общий объём, и какая выходит скорость копирования — если в него послать сигнал USR1.
Помнится, в древние времена во FreeBSD это можно было сделать, просто нажав Ctrl-T, но в нынешнем линуксе это не работает. Послать сигнал из другого терминала тоже нельзя, ибо терминал только один. Зайти в эту машинку по сети тоже невозможно, ибо однопользовательский режим, сеть не подключена.
Так как же послать этот сигнал, если единственный имеющийся терминал занят этим самым dd?
P.S. Я щас сам как раз это и делаю, копируя один большой диск на другой ;)
Оригинал этой записи в личном блоге.