Как можно отобразить в файле вывод команды "watch -n 1 kill -USR1 $ pid_dd"? - PullRequest
0 голосов
/ 25 июня 2019

Во-первых, я написал сценарий оболочки для копирования файла командой dd: Во-вторых, я написал в другом файле скрипт для отображения хода выполнения копии. Проблема в том, что я не могу поместить вывод хода выполнения команды dd в файл в реальном времени

Я работаю над debian и пытаюсь использовать команды 'dd' и 'kill -USR1 $ pid_dd'. Я хочу получить значения в ГБ (например, 5,2 ГБ; 7,8 ГБ и т. Д.), Чтобы узнать ход копирования.

В первом файле сценария это то, что я написал:

#!/bin/sh
dd if=/dev/zero of=data.txt count=1024 bs=10485760

Во втором файле сценария это то, что я написал:

#!/bin/sh
pid_dd=$(pgrep -l '^dd$' | grep -o -E '[0-9]+')
watch -n 1 kill -USR1 $pid_dd | grep -o '[0-9]\+ .GB$'>>output.txt

Когда я запускаю второй сценарий для отображения вывода в файле, чтобы получить в ГБ ход выполнения копирования, я заметил, что файл 'output.txt' пуст.

Как мы можем отобразить значение вывода команды watch -n 1 kill $pid_dd | grep -o '[0-9]\+ .GB$' в файл?

N.B .: Я знаю, что мы можем использовать эту команду: dd if=/dev/zero of=data.txt status = progress

Я не хочу этим пользоваться. Я хочу работать с 2 файлами сценария, чтобы запустить их с потоками на втором этапе. Первый поток, который запустит команду dd, и второй поток, который запустит скрипт, чтобы отобразить ход выполнения копирования

Заранее благодарю за помощь и советы.

...