
Добрый день
Я использую этот скрипт для резервного копирования моего домашнего ПК на удаленный ПК.
#!/bin/bash
#Todays date in ISO-8601 format:
DAY0=`date -I`
#Yesterdays date in ISO-8601 format:
DAY1=`date -I -d "1 day ago"`
#The source directory:
SRC="/home/honza/Downloads/"
#The target directory:
TRG="[email protected]:/media/zaloha/$DAY0"
#The link destination directory:
LNK="[email protected]:/media/zaloha/$DAY1"
#The rsync options:
OPT="-avh --delete --link-dest=$LNK
#Execute the backup
rsync $OPT $SRC $TRG
#3 days ago in ISO-8601 format
DAY3=`date -I -d "3 days ago"`
#Delete the backup from 3 days ago, if it exists
if [ -d /[email protected]:/media/zaloha/$DAY3 ]
then rm -R /[email protected]:/media/zaloha/$DAY3
fi
Я не знаю, как удалить старую резервную копию, которая старше 3 дней. Скрипт работает хорошо, когда я делаю резервную копию на том же ПК, но не на удаленном.
--link-dest arg does not exist: /[email protected]:/media/zaloha/2013-03-15
и старые резервные копии не удаляются.
Он также хорошо работает, когда скрипт запущен на удаленном ПК. SRC — это
SRC = "[email protected]:/home/hunts/Downloads"
Но я не знаю, является ли это решением для управления? Спасибо.
решение1
Я не думаю, что эта команда удаления сработает. Может быть, попробовать использовать прямую SSH-команду для удаления файла, например:
ssh [email protected] rm -rf /media/zaloha/$DAY3
Извините, но я не могу сказать, почему аргумент «link-dest» не работает.