如今不少朋友經過購買雲服務器建站,有時候因爲服務器系統的問題,沒有及時作好網站數據的備份而致使數據的丟失。若是你手中還有其餘雲服務器或者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
上述備份也能夠用其餘方式!mysql
下面講述如何將備份是數據上傳到FTP服務器上:web
#!/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 !