Як я можу відстежувати прогрес ДД


Відповіді:


57

Та сама інформація, що виводиться щосекунди у відповіді кланомата, може відображатися за допомогою вашої команди. Вам просто потрібно ввести controlTсимвол з клавіатури, поки ddкоманда виконує.

Натискаючи controlTсимвол, ви надсилаєте той самий SIGINFOсигнал ddкоманді, яку pkill -INFO -x ddнадсилає команда .


25

Станом на Coreutils 8.24, dd додав параметри статусу. Встановіть coreutils з Homebrew, щоб оновити dd.

brew install coreutils
# All commands have been installed with the prefix 'g'
sudo gdd if=XXXX.iso of=/dev/diskX bs=1 status=progress 

> example:
> 139648967 bytes (140 MB, 133 MiB) copied, 304 s, 459 kB/s    

3
Не знав про coreutils, дуже зручно.
SteveLambert

1
Хоча це працює, ви
звели

8

ddсама по собі не забезпечує смугу прогресу. Ви можете оцінити хід процесу копіювання dd, додавши команду pkill -INFO .

Приклад:

dd if=/dev/zero of=/dev/null bs=64m count=1000 & while pkill -INFO -x dd; do sleep 1; done

Результат:

[1] 37691
0+0 records in
0+0 records out
0 bytes transferred in 0.028923 secs (0 bytes/sec)
275+0 records in
275+0 records out
18454937600 bytes transferred in 1.029698 secs (17922667819 bytes/sec)
553+0 records in
553+0 records out
37111201792 bytes transferred in 2.048291 secs (18118129881 bytes/sec)
829+0 records in
829+0 records out
55633248256 bytes transferred in 3.068911 secs (18128009214 bytes/sec)
1000+0 records in
1000+0 records out
67108864000 bytes transferred in 3.720346 secs (18038339571 bytes/sec)
[1]+  Done                    dd if=/dev/zero of=/dev/null bs=64m count=1000

Що означає великі 18,1 Гб / с.


Які технічні характеристики машини, на якій ви запустили цю команду?
користувач3439894

@ user3439894 i7ac 3,5 ГГц i7ac. Чому?
кланомат

Було просто цікаво через вихід байтів / сек, який, до речі, насправді становить 16,8 ГБ / с (округлений), оскільки це база 2, а не 10 обчислень.
користувач3439894

5

Перш за все, встановіть Homebrew Package Manager . Тоді вам доведеться встановити pvі dialogз цією командою:

brew install pv dialog

Після цього можна запустити цю команду, щоб отримати команду:

dd if=disk.img bs=1m | pv disk.img | dd of=/dev/diskX bs=1m

але обов'язково замініть disk.imgшлях до зображення та diskXідентифікатором диска вашої SD-карти. Якщо ви хочете щось більш графічне, ви можете спробувати це:

(dd if=disk.img bs=1m | pv -n disk.img | dd of=/dev/diskX bs=1m conv=notrunc,noerror) 2>&1 | dialog --gauge "Writing image to SD card..." 10 70 0

Джерело: /ubuntu//a/516724/765767


3

Ви можете натиснути Control+ tпід час виконання ddкоманди або на гарній панелі прогресу ви можете встановити pv(переглядач труб) через Homebrew:

brew install pv

а потім виконати:

sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2

або (знаючи розмір зображення, 16 Гб у цьому прикладі):

dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2


Приклад виводу 2:

(передані дані, минулий час, швидкість, смуга прогресу та передбачуваний час):

    1.61GiB 0:12:19 [2.82MiB/s] [===>                 ] 10% ETA 1:50:25

2

Це легко! Для macOS High Sierra і нижче, просто запустіть цикл, і він буде працювати, поки він не буде закінчений. Просто переконайтеся, що введіть код нижче в іншому вікні:

Код нижче буде випрацьований під час завантаження вбудованого програмного забезпечення або в повному обсязі ОС

while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done

^ Щоб тримати машину в режимі пробудження (кофеїна) без використання «домашньої кашки» чи інструментів, недоступних у стандартній Mac OS X, оскільки для її встановлення потрібен Інтернет та фактична ОС.

ПРИМІТКА . Вищеперелічене потребує заміни PID на ваш ідентифікатор процесу, і він буде постійно показувати прогрес


Я також знайшов подалі, щоб тримати машину в спокої, щоб ви не поверталися до неї спати і постійно доводилося її будити.
Дон-П'єр Халфавей

Наведений вище сценарій повідомляє вам дату, дає вам статистика його копіювання та тримає його
неспаним

Його найкраще використовувати для терміналу на Mac, коли ви не перебуваєте в операційній системі з повним ударом. Але в межах прошивки / біографії. Однозначно рішення, яке слід пам’ятати
Дон-П'єр Халфавей

Яка мета $(...)? Я знаю, що вони взагалі роблять, мені просто цікаво, чому ви тут їх використовуєте?
nohillside

вийти з пробілів і змусити команду запустити всі в одному рядку. Я впевнений, що міг би подвоїти "(" і ")", але хотів, щоб люди бачили варіанти, доступні для непрофесійного підходу
Дон-П'єр Халфавей
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.