利用Crontab自动备份站点内容

林继 VPS 知识 2,899 共写了592个字 (2010-08-08 22:07:50) 没有评论 打印 扫描二维码 百度已收录

空间实施自动备份,过程如下.
1、按照后面的脚本修改好要备份的文件夹、数据库用户名和密码以及放置备份的FTP服务器的用户名和密码。
2、将上面修改好的内容,存成UNIX格式的文本。(如果是WINDOWS格式的文本,脚本执行中会出现^M错误提示)
3、将此脚本文本(假定为mybaktask)上载到网站的某目录下。
如:  /home/你的用户名/mybaktask。
4、存放好mybaktask文件后,还要将此文件设置成可执行,如700。这步一定不要忘记!否则系统将无法启动此脚本。
5、打开控制面板中的cronjobs。设置此计划任务(备份)的时间时间,具体到minute分钟,小时hour,[某天day of month],[月份month],[星期几day of week]。
不设置的值,仍保持原来的默认*号。
例如,我想它在每天7点10执行,那么,将minute处填写10,hour处填写7即可,其它值不变。
另外要注意是,这是服务器时间,和我国可能会差几个时区。
6、在cronjobs界面上,填写command,就是上面的第3步骤的文件名。
例如   /home/你的用户名/mybaktask。
接下点add.就添加了备份任务。
按照以上步骤,自动备份站点的计划任务就设置完成了。
在计划时间过后,你可以去你的FTP服务器上,看看备份的站点文件。

  1. #!/bin/sh <br/>MYSQLUSER="root"<br/>MYSQLPASSWORD="password"<br/>MYSQLHOST="localhost"<br/>MYSQL="$(which mysql)"<br/>MYSQLDUMP="$(which mysqldump)"<br/>TMPDIR="/home/yourname/tmpdir"<br/>WEBDIR="/www/yourname"<br/>GZIP="$(which gzip)"<br/>TAR="$(which tar)"<br/>NOW=$(date +"%Y%m%d-%H%M")<br/>MONTH=$(date +"%Y%m")<br/>[ ! -d $TMPDIR ] && mkdir -p $TMPDIR &#124;&#124; /bin/rm -f $TMPDIR/*<br/>DBS="$($MYSQL -u $MYSQLUSER -h $MYSQLHOST -p$MYSQLPASSWORD -Bse &#39;show databases&#39;)"<br/>for db in $DBS<br/>do<br/>FILE=$TMPDIR/$NOW.$db.gz<br/>$MYSQLDUMP -u $MYSQLUSER -h $MYSQLHOST -p$MYSQLPASSWORD $db &#124; $GZIP -9 > $FILE<br/>done<br/>cd $WEBDIR<br/>$TAR -czvf $TMPDIR/$NOW.web.tar.gz public_html<br/>cd $TMPDIR<br/>ftp -n <<!<br/>open ftp.hostdomainzone.com<br/>user ftpuser ftppassword<br/>cd _dbbackup<br/>mkdir $MONTH<br/>cd $MONTH<br/>prompt<br/>mput *<br/>bye<br/>!<br/>find $TMPDIR -ctime +4 -exec rm {} &#92;;<br/>exit

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >