我在shell脚本方面的经验非常有限,并且希望每周都有一些脚本来支持我的博客(Wordpress)。
这是我到目前为止
#!/bin/bash # Determine current date setenv CURDATE date +%Y%m%d # Backup DB & email it to me mysqldump dbname -u user -ppassword | gzip | uuencode ${CURDATE}dbname.sql.gz | mail -s "backup for dbname ${CURDATE}" [email protected] cd /home/myhome # Zip blog tar cf - blog.mysite.me | gzip - > ~/backups/${CURDATE}blog.mysite.me.tar.gz
这是我有点卡住了…我正在考虑自己的博客目录电子邮件,但是当这个变得更大,然后10MB左右呢? 我怎么会脚本这分裂这个和给我发电子邮件大块?
我觉得更好的另一个build议是将备份FTP到我拥有的另一个VPS。 但是为了空间的缘故,我只想保留最近的10次备份。 我将如何实现脚本脚本的一部分:
任何帮助/build议或解决这个问题的指针将不胜感激:)
而不是压缩和ftping,在networking上使用rsync。 如果您为每个date创build一个新目录,并使用–link-dest选项将其链接回到以前的目录,则它将只存储更改的文件,而不更改的文件将成为硬链接前一个。
我在Linux服务器的什么备份解决scheme上发布了一些代码
首先,从一个命令使用中设置一个variables
CURDATE=$(date +%Y%m%d)
代替
setenv CURDATE date +%Y%m%d
如果您只想保留10天的备份,则可以删除10天前创build的备份。 使用相关的date命令find它并保存到另一个variables:
PAST_DATE=$(date +"%m-%d-%Y" --date="10 days ago")
其次,您可以使用lftp在一行上执行ftp命令,如下所示:
lftp -u user,pass server -e "mrm *${PAST_DATE}.sql.gz; exit;
如果在文件名上使用date,并且每天删除10天的文件,则可以完全按照您的想法进行操作。 您也可以使用lftp来放置文件,它像一个普通的客户端一样工作,只是它在一行上工作。