现在很多朋友通过购买云服务器建站,有时候由于服务器系统的问题,没有及时做好网站数据的备份而导致数据的丢失。如果你手中还有其他云服务器或者FTP服务器可以实现自动备份上传的功能。本文仅仅是做一个备份数据想法。
(1)网站数据备份
将网站数据/var/www/vhost/www.51cto.com和/var/www/vhost/www.baidu.com分别备份到:
/Data/code-backup/www.51cto.com和/Data/code-backup/www.baidu.com下。
[root@baicai_web5 code-backup]# cat web_code_backup.sh
#!/bin/bash
#备份网站数据
/bin/tar -zvcf /Data/code-backup/www.baidu.com/www.baidu.com_`date +%Y%m%d_%H%M%S`.tar.gz /var/www/vhosts/www.baidu.com
/bin/tar -zvcf /Data/code-backup/www.51cto.com/www.51cto.com_`date +%Y%m%d_%H%M%S`.tar.gz /var/www/vhosts/www.51cto.com
#删除一周之前的备份文件
find /Data/code-backup/www.baidu.com -type f -mtime +7 -exec rm -f {} \;
find /Data/code-backup/www.51cto.com -type f -mtime +7 -exec rm -f {} \;
[root@baicai_web5 ~]# crontab -l
#每天凌晨5点备份网站数据
0 5 * * * /bin/bash -x /Data/code-backup/web_code_backup.sh > /dev/null 2>&1
备份后的效果如下:
[root@baicai_web5 ~]# ls /Data/code-backup/www.baidu.com/
www.baidu.com_20180517_174328.tar.gz
[root@xqsj_web5 ~]# ls /Data/code-backup/www.51cto.com/
www.51cto.com_20180517_174409.tar.gz
(2)数据库备份(自动删除10天前的备份文件)
[root@baicaiPC crontab]# pwd
/Data/Mysql_Bakup/crontab
[root@baicaiPC crontab]# cat backup_db_xiaobaicai.sh
#!/bin/bash
MYSQL="/usr/bin/mysql"
MYSQLDUMP="/usr/bin/mysqldump"
BACKUP_DIR="/Data/Mysql_Bakup"
#DB_SOCKET="/var/lib/mysql/mysql.sock"
DB_hostname="119.27.184.XX"
DBNAME="xiaobaicai"
DB_USER="db_xiaobaicai"
DB_PASS="mhxzk3rfzh"
TIME=`date +%Y%m%d%H%M%S`
LOCK_FILE="${BACKUP_DIR}/lock_file.tmp"
BKUP_LOG="/Data/Mysql_Backup/${TIME}_bkup.log"
DEL_BAK=`date -d ‘10 days ago‘ ‘+%Y%m%d‘`
##To judge lock_file
if [[ -f $LOCK_FILE ]];then
exit 255
else
echo $$ > $LOCK_FILE
fi
##dump databases##
echo ${TIME} >> ${BKUP_LOG}
echo "=======Start Bakup============" >>${BKUP_LOG}
#${MYSQLDUMP} -h ${DB_hostname} -u${DB_USER} -p${DB_PASS} --databases ${DBNAME} | gzip -9 > ${BACKUP_DIR}/${TIME}.${DBNAME}.gz
${MYSQLDUMP} -h ${DB_hostname} -u${DB_USER} -p${DB_PASS} --databases ${DBNAME} |gzip -9 > ${BACKUP_DIR}/${TIME}.${DBNAME}.gz
echo "=======Finished Bakup============" >>${BKUP_LOG}
/bin/rm -f ${LOCK_FILE}
##del back 10 days before##
/bin/rm -f ${BACKUP_DIR}/${DEL_BAK}*.gz
上述备份也可以用其他方式!
下面讲述如何将备份是数据上传到FTP服务器上:
#!/bin/bash
ftp -n<<!
open 119.27.184.84 (连接到FTP服务器)
user root root66 (账号密码)
binary
hash
cd /FTP/Web (上传到FTP服务器的目录)
lcd /www/backup/site (本地备份数据的目录)
prompt
mput *
close
bye
!
原文地址:http://blog.51cto.com/10923272/2117664