方法如下:
一,安装所需程序
yum install -y mutt vixie-cron |
二,设置mutt发信参数
$ vim ~/.muttrc |
写入下面的内容
set envelope_from=yes set from=bak@diavps set realname="DiaBak" set use_from=yes |
三,设置脚本
注意这几个目录
/etc/cron.hourly /etc/cron.daily /etc/cron.weekly /hly |
这些目录下的文件可以分别每小时,每天,每周,每月自动执行一次。
如果是把脚本程序放置在上面的目录里,最好把权限设置为0700。
设置更复杂的执行条件可以使用crontab -e命令。详情请百度。
以每天执行为例
$ vim /etc/cron.daily/diabsk.sh |
写入下面的内容
#!/bin/bash # SETTING TOEMAIL=”bak@diavps”; COMMENT=’blog database backup’ DIR=’wordpress’ # END SETTING TMP=’/tmp/diabak/’${DIR} ATTTMP=’/tmp/diabakatt/’${DIR} rm -rf $TMP mkdir -p $TMP cd $TMP # Put files what you want to backup to $TMP # Don’t change anything below YYYYMMDD=`date +%Y%m%d` SUBJECT=’DiaBak_of_’${DIR}’_'${YYYYMMDD}; rm -rf $ATTTMP mkdir -p $ATTTMP cd $ATTTMP tar zcPf $TMP rm -rf $TMP split -b 20m -a 3 -d ${SUBJECT}.part rm -f for file in * do echo $COMMENT | mutt -a $file -s $SUBJECT $TOEMAIL sleep 30s done rm -rf $ATTTMP |
需要更改的内容已经加红
TOEMAIL为接收邮件的邮箱地址。
TOEMAIL为注释邮件,以邮件正文发送。
DIR为临时目录名,建议仅使用英文和数字。
# Put files what you want to backup to $TMP,这一行下面的命令根据需要自己补充,比如备份数据库可以把SQL文件导出到$TMP目录,备份文件可以复制文件到$TMP目录。
四,导出数据库的命令。
1.备份单个数据库
mysqldump –user=user –password=password –lock-all-tables dbname > backup.sql
2.备份多个数据库
mysqldump –user=user –password=password –lock-all-tables –databases dbname1 dbna
me2 > backup.sql
3.备份所有数据库
mysqldump –user=user –password=password –lock-all-tables –all-databases > backup.sql
–lock-all-tables选项可以在备份期间锁定数据库防止出现变化,进而导致多个有关系的表不同步,比如A表需要引用B表,备份完A表后,B表发生了变化,之后才备份了B表,这样数据库就乱了。
备份上百M的数据库也只用了几秒而已,所以这个选项对网站运行影响不大。
五,重新组合备份的文件
Linux下
$ cat DiaBak* >
windows下
copy DiaBak_of_testfile_20100421.part001/b+DiaBak_of_testfile_20100421.part002/b
注意分卷后面会有三位数字,cat命令会按这些数字的顺序重新组合文件,所以数字不能乱。
copy命令同理,注意数字顺序。
六,其他gmail 邮箱
测试了一个600多M的文件,以20M的大小分成了31个包,通过脚本发送,用时十几分钟,期间网速保持在5Mbps到10Mbps之间,本机还有足够的带宽,这个应该是GMAIL的上限了。
有些邮件需要过一个多小时才在Gmail显示出来。31个包全部收到。
如果哪位发现有比Gmail更适合备份的邮箱,期待与大家分享。
在godaddy每注册一个域名后都可以免费申请一个10G大小、300G流量的Windows/Linux空间,然而该免费空间因为自带godaddy的广告再加上所在的服务器性能实在有限,使之完全沦为鸡肋,被多数人弃之一旁。
昨天在到一个自动备份MySQL的脚本后,想到可以利用godaddy的免费空间对VPS的数据库以及网页进行异地备份。
首先登陆到godaddy的My Account页面开通免费空间,步骤很简单,可以点这儿围观。
在准备好godaddy的免费空间以后,就可以再VPS上动手术了,首先在VPS上安装lftp:
yum -y install lftp |
然后创建自动备份脚本backup.sh:
#!/bin/bash ### MySQL Server Login Info ### MUSER="username" MPASS="password" MHOST="localhost" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" BAK="/home/yourname/backup/mysql" GZIP="$(which gzip)" ### FTP SERVER Login info ### FTPU="ftp username" FTPP="ftp password" FTPS="ftp server" NOW=$(date +"%d-%m-%Y") [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do FILE=$BAK/$db.$NOW-$(date +"%T").gz $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done lftp -u $FTPU,$FTPP -e "mkdir /db-backup/$NOW;cd /db-backup/$NOW; mput /home/yourname/backup/mysql/*; quit" $FTPS find /home/yourname/backup/mysql -ctime +4 -exec rm {} \; |
修改脚本权限,使其能运行:
发布评论