1. 程式人生 > >Linux服務器建站數據備份自動上傳FTP服務器

Linux服務器建站數據備份自動上傳FTP服務器

網站 Linux

現在很多朋友通過購買雲服務器建站,有時候由於服務器系統的問題,沒有及時做好網站數據的備份而導致數據的丟失。如果你手中還有其他雲服務器或者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
!

Linux服務器建站數據備份自動上傳FTP服務器