Если Вы вводите
command 1 & command 2
это равно
command 1 &
command 2
т.е. это выполнит первую команду в фоне и затем выполняет вторую команду на переднем плане. Особенно это означает, что Ваш echo "done"
печатается после command 2
законченный, даже если command 1
все еще работает.
Вы, вероятно, хотите
command 1 &
command 2 &
wait
echo "done"
Это будет выполнять обе команды в фоне и ожидать обоих для завершения.
При нажатии CTRL-C, это только отправит сигнал SIGINT в приоритетный процесс, т.е. command 2
в Вашей версии или wait
в моей версии.
Я предложил бы поставить капкан как это:
#!/bin/bash
trap killgroup SIGINT
killgroup(){
echo killing...
kill 0
}
loop(){
echo $1
sleep $1
loop $1
}
loop 1 &
loop 2 &
wait
С прерыванием сигнал SIGINT, произведенный CTRL-C, захватывается и заменяется killgroup
функция, которая уничтожает все те процессы.
] Если у вас нет резервных копий, ваши данные не важны. [
] [] Они пропали. Отмены нет. Особенно, если не задействовано шифрование.[
] [][] что-то, что производит вывод > /dev/somedisk[
] перезаписывает данные на устройстве. Что бы ни было перезаписано, оно не может быть восстановлено, поэтому ваш единственный шанс будет, если вы заметили и отменили его сразу же. Тогда, вероятно, будут отсутствовать только первые несколько сотен мегабайт, и у вас может быть шанс на восстановление, особенно если разделы, которые вы хотите восстановить, начинаются где-то дальше. В этом случае речь идет о восстановлении таблицы разделов, из памяти или с помощью []тестдиска[
], []gpart[
] или еще чего-нибудь.[
]Если вы не отменили, то это зависит от того, сколько было произведено вывода, i. т.е. в вашем случае, был ли []/dev/sdb[
] меньше, чем []/dev/sdc[
], поэтому он был только перезаписан до сих пор.[
] Однако, вы говорите, что это был dm-crypt'ed. Обычно это означает LUKS. И у LUKS есть заголовок в начале. Если вы потеряете этот заголовок и контейнер LUKS все еще не открыт, то вы ничего не сможете вернуть. Если он всё ещё открыт, вы хотите сохранить вывод []dmsetup table - showkeys[
].[
]Некоторые люди используют LUKS без разбиения диска на разделы, а затем имеют какую-то глупую ошибку в программе разметки или установки, которая ничего не делает, кроме создания маленькой таблицы разделов. Это перезаписывает менее 512 байт в начале диска, но этого всё равно достаточно, чтобы повредить заголовок LUKS и данные будут безвозвратно потеряны.[
].Невозможно восстановить, как это просто.
На заметку, выполнение dd
не является идеальным способом резервного копирования файлов.
Для будущих случаев подумайте об использовании таких инструментов, как dar
- вы хотите некоторого сжатия, инкрементальная резервная копия также позволит вам сэкономить огромное количество времени и дискового пространства в большинстве случаев.