【发布时间】:2014-08-18 16:27:38
【问题描述】:
我从互联网上得到了一个 bash 脚本,它看起来不错。 它已经备份,上传 FTP,删除超过 7 天的旧备份。
但它不会删除远程 FTP 中超过 7 天的旧备份
#!/bin/sh
Mdate="$(date +"%d-%m-%Y")"
mysqldump -uroot -pPassword asia stats | gzip > /home/backup/asia_$Mdate.$
cd /home/backup/
ftpserver="ftp.drivehq.com"
ftpuser="username"
ftppass="password"
ftp -n -i $ftpserver <<EOF
user $ftpuser $ftppass
cd backupstats
mput asia_$Mdate.gz
quit
EOF
find /home/backup/asia_*.gz -maxdepth 1 -type f -mtime +7 -delete
示例备份名称将类似于“asia_17-08-2014.gz”
提前感谢您的帮助。
【问题讨论】:
-
asia_17-08-2014.gz 是没有被删除的实际备份文件名吗?
-
不,这只是将创建的示例备份名称。
-
find ... delete正在本地运行。而且我看不到您刚刚创建的文件会超过 7 天? -
@BroSlow ya 它删除本地,这就是为什么我要求脚本删除远程 ftp。我每天都运行 cronjob,所以我有 20 多个旧备份
-
一般来说,将文件保留 7 天的最简单方法就是将它们命名为
.mon、.tue等。然后您只需在每周一、周二等覆盖前一周的文件。