LNMP自动备份到FTP脚本(自动打包网站内容和数据库到FTP并删除旧文件)
之前用了好多个一键备份的脚本,感觉用起来都不大舒服,于是自己就写了一个。用的是lftp,镜像同步,免去很多麻烦...
自己看代码吧
#!/bin/bash #==========================Compress Data to FTP======================== BAK_DIR=/home/backup/ WEB_DIR=/home/wwwroot/ MYSQL_USER=root MYSQL_PASS=passwd FTP_HOST=8.8.8.8 FTP_PORT=21 FTP_USER=user FTP_PASS=passwd FTP_PATH=ftpbackup #====================================================================== timestamp=`date +%s`; mydate=`date +%Y%m%d`; BakName=${mydate}_${timestamp}.tar.gz if [ ! -d $BAK_DIR ]; then mkdir -p $BAK_DIR; fi; #------------------------Tar Db to backup dir-------------------------- mysql -u${MYSQL_USER} -p${MYSQL_PASS} -B -N -e 'SHOW DATABASES' | xargs > ${BAK_DIR}mysqldata sed -i 's/information_schema//g' ${BAK_DIR}mysqldata; sed -i 's/performance_schema//g' ${BAK_DIR}mysqldata; sed -i 's/mysql//g' ${BAK_DIR}mysqldata for db in `cat ${BAK_DIR}mysqldata`; do (mysqldump -u$MYSQL_USER -p$MYSQL_PASS --lock-all-tables --databases ${db} | gzip -9 - > ${BAK_DIR}${db}.sql.gz); done; tar zcvf ${BAK_DIR}sql_${BakName} -C ${BAK_DIR} --exclude=*.tar.gz --exclude=mysqldata . rm -rf ${BAK_DIR}*.sql.gz #------------------------Tar Web to backup dir------------------------- tar zcvf $BAK_DIR/www_${BakName} -C $WEB_DIR . #------------------------Del old files--------------------------------- find $BAK_DIR -mtime +7 -type f | xargs rm -rf #------------------------Transfer Web to Ftp--------------------------- lftp ${FTP_USER}:${FTP_PASS}@${FTP_HOST}:${FTP_PORT} -e "mirror -R --delete --only-newer --verbose ${BAK_DIR} ${FTP_PATH} && bye"
自己添加定时任务,就可以实现自动备份了
自己新建文件,并保存文件名.sh,然后执行就可以了
Lailina,有你真好!
http://www.gzlln.com
IP已送 欢迎回访
好,大家好才是真的好!
网站速度好快,秒开,用的是哪家IDC?
aliyun,2M带宽