У меня есть текстовый файл со всеми именами папок в порядке дат, который я пытаюсь вызвать в сценарии для rsync в папку однократного резервного копирования, в основном объединяя все инкрементные резервные копии.
#!/bin/bash
filename=/home/user/Scripts/Testing/temp.txt
while read filename
do
$ for f in ls -t /var/user-test/ | grep $filename; rsync -aL /var/user-test/$f /var/u-backup/secure/;
done < temp.txt
Этот сценарий предназначен для запуска по разным папкам с резервными копиями и их синхронизации в одной папке. Моя проблема в том, что один этот сценарий не работает, а второй - это лучший способ объединить инкрементные резервные копии.
Вот лучший подход к тому, что вы пытаетесь сделать:
#!/bin/bash
#
# Copy data from a number of directories specified by $file (and located in $source) into a single directory specified by $target
#
file=/home/user/Scripts/Testing/temp.txt
source=/var/user-test/
target=/var/u-backup/secure/
cat $file | while read directory; do
rsync -aL "${source}${directory}/" "${target}"
done
В вашем скрипте много ошибок, некоторые из них являются синтаксическими ошибками, наиболее очевидными из которых является то, что вы забыли добавить do / done в свой цикл for; также есть знак "$" в начале 5-й строки
однако я вижу также концептуальные ошибки; как использование имя файла имя переменной в разных контекстах.