Я использую этот простой скрипт. Не стесняйтесь настраивать определенные флаги и/или параметризовать их.
#!/bin/bash
while [ 1 ]
do
rsync -avz --partial [source] [dest]:
if [ "$?" = "0" ] ; then
echo "rsync completed normally"
exit
else
echo "Rsync failure. Backing off and retrying in 180 s..."
sleep 180
fi
done
Перед запуском скрипта вы должны заменить [source]
и [dest]
своими фактическими значениями.
Поскольку строки в кавычках заключены в двойные... двойные кавычки, они вообще не заключаются в кавычки.
У вас есть:
find /log/ -mtime -31 -type f -name ""*data.txt"" -printf ""cp -p %p /Backup/%Td/\n"" | sh
Это должно быть:
find /log/ -mtime -31 -type f -name "*data.txt" -printf "cp -p %p /Backup/%Td/\n" | sh
Возможно, вам не следует этого делать. Вы должны использовать find -exec
для копирования этих файлов.