linux - 备份脚本 - 递归

标签 linux cron centos

我们希望使用以下备份脚本来移动 datavol 文件夹中的每个目录,但它似乎在第 4 行失败。如果有人对执行此操作有更好的建议,请随时告诉我。

for d in /home/datavol/ ; do
echo "$d"

tar -czf /backups/emalee-backup-$d-$(date +%Y-%m-%d).tar.gz /home/datavol/$d

scp -i /root/.ssh/id_rsa_backup /backups/emalee-backup-$d-$(date +%Y-%m-%d).tar.gz emalee-backup@peg.trinix.co:/home/emalee-backup/docker-backup

curl -X POST --data-urlencode 'payload={"channel": "#server","text": "We are all backed up. Good ol Emalee is safe on /"$d/". :pride:"}' https://hooks.slack.com/services/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

rm /backups/emalee-backup-$d-$(date +%Y-%m-%d).tar.gz -f

ssh -i /root/.ssh/id_rsa_backup emalee-backup@peg.trinix.co

find /home/emalee-backup/docker-backup/ -mtime +7 -exec rm -f {} \;

TODAYSDATE=$(date +%d)
if [ "$TODAYSDATE" == "01" ] ;
then
    cp /home/emalee-backup/docker-backup/emalee-backup-$d-$(date +%Y-%m-%d).tar.gz /home/emalee-backup/monthly-docker-backup/emalee-backup-$d-$(date +%Y-%m-%d).tar.gz
    curl -X POST --data-urlencode 'payload={"channel": "#server","text": "Archived a monthly backup for good ol Emalee on $d. :handbag:"}' https://hooks.slack.com/services/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
fi
done

logout

最佳答案

工作解决方案

for d in /home/datavol/hosts/* ; do

s="${d##*/}"

echo "$s"

tar -czf /backups/emalee-backup-$s-$(date +%Y-%m-%d).tar.gz $d

scp -i /root/.ssh/id_rsa_backup /backups/emalee-backup-$s-$(date +%Y-%m-%d).tar.gz emalee-backup@peg.trinix.co:/home/emalee-backup/docker-backup

curl -X POST --data-urlencode 'payload={"channel": "#server","text": "We are all backed up. Good ol Emalee is safe on "'"$s"'". :pride:"}' https://hooks.slack.com/services/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

rm /backups/emalee-backup-$s-$(date +%Y-%m-%d).tar.gz -f

done

关于linux - 备份脚本 - 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41314673/

相关文章:

python - 努力用 crontab 运行 python 脚本

php - 带有curl的Cronjob php文件在浏览器中工作但在crontab中工作错误

php - apache webserver 已经在 centos xampp 中运行

PHP:加载共享库时出错:libmysqlclient.so.18

linux - e : Malformed entry 1 in list file/etc/apt/sources. list.d/docker.list(组件)

linux - 为什么.data可执行?

linux - 如何在 bash 中比较变量

c - 推送函数C语言中堆栈中的段错误

php - Magento Cron 作业/bin/bash : php7: command not found

php - Apache RewriteRule 在 http 下工作,而不是在 https 下工作