Самая очевидная ошибка, которую я вижу, состоит в том, что Вы не защищаете i
переменная цикла. Таким образом, когда Вы пишете $i_trip_point
, оболочка ищет названную переменную i_trip_point
, который не установлен так, Вы получаете второй тип ошибки, как это, например:
cat: /sys/class/thermal/thermal_zone2/trip_point__temp: No such file or directory
Два символа нижнего подчеркивания между point
и temp
который отмечает пустую интерполируемую переменную. Необходимо использовать синтаксис ${i}_trip_point
. Фигурные скобки защищают Вашу переменную от смежных символов, интерпретируемых как часть имени переменной.
Помню, что в результате rsync у меня возникли некоторые проблемы; я не уверен, были ли это жесткие ссылки, файлы устройств или что-то в этом роде. С тех пор я использую
tar -cv $(ls) | ( cd /mnt; tar xv )
, которая копирует все файлы из . в /mnt. Вся моя история находится здесь: http://www.linuxintro.org/wiki/Cloning#file-by-file_copy_2
Если решения tar
или rsync
не работают, и если каталог является корнем файловой системы, вы можете использовать старые утилиты резервного копирования dump / restore
(да что еще работает).
dump
дублирует характеристики файловой системы без прохождения через интерфейс файловой системы ядра, так что это довольно быстро.
Неудобство в том, что дамп
чувствителен к изменениям, сделанным в исходной файловой системе во время копирования.
Так что лучше размонтируйте файловую систему или перемонтируйте ее только для чтения, или остановите любое приложение, которое может получить к ней доступ, прежде чем запускать копию. Если вы соблюдаете это условие, копия будет надежной.
В зависимости от типа файловой системы имя команды dump
может изменяться, например, у вас может быть xfsdump
для XFS.
Следующая команда аналогична примеру tar
:
dump 0uf - /dev/sdaX | (cd /target && restore rf -)
Число - это уровень инкрементного копирования; 0
указывает на выполнение полного копирования.