linux服務器使用FTP備份數據(數據庫+網站)腳本
linux服務器使用FTP備份數據腳本
以CentOS為例:
1、安裝FTP客戶端:
yum install ftp
2、部署備份腳本到定時任務;
crontab -e
添加如下內容(每天凌晨2點自動執行備份腳本):
00 02 * * * /data/sh /bakup.sh
3、備份程序部署完成後,請人工定時登陸FTP檢查備份文件的有效性,本公司保證FTP可靠,因腳本執行結果受系統環境和權限的影響,本公司不對自動備份的數據有效性做保證。
附加備份腳本,請自行修改相關參數:
#!/bin/sh BAK_DIR="/data/backup/idc" #本機備份文件臨時存儲目錄 WEB_DIR="/data/web/idc/*" #要備份的網站文件 FTP_USER="cheshirex" #FTP用戶名 FTP_PWD="cheshirex" #FTP密碼 DB="XXX" #要備份的數據庫 DB_PWD="XXXXXX" #數據庫root 用戶密碼 DATE_TIME=$(date +%F-%T) DATE=$(date +%Y%m%d) MYLOG_DIR='/var/log/mylogs' mkdir -p /var/log/mylogs DATE_TIME=$(date +%F-%T) if [ -d BAK_DIR ]; then chmod -R 755 $BAK_DIR else mkdir -p $BAK_DIR chmod -R 755 $BAK_DIR fi #web backup tar -zcPf $BAK_DIR/web_$DATE.tar.gz $WEB_DIR 2>&1 re1=$? if [[ $re1 == 0 ]]; then /bin/sync /bin/sync sleep 5 echo "Data has been completed package! $DATE_TIME" >> $MYLOG_DIR/databak.log else echo "Web completed package Fail!" >> $MYLOG_DIR/databak.log fi #database backup mysqldump -u root -p$DB_PWD $DB > $BAK_DIR/db_$DATE.sql re2=$? if [[ $re2 == 0 ]]; then echo "Database Export Completed! $DATE_TIME" >> $MYLOG_DIR/databak.log else echo "Database Export Fail!" >> $MYLOG_DIR/databak.log fi if [[ $re1 == 0 ]] && [[ $re2 == 0 ]]; then echo "Began to upload file $DATE_TIME" >> $MYLOG_DIR/databak.log ftp -n<<! open 42.51.152.254 user $FTP_USER $FTP_PWD binary hash cd / lcd $BAK_DIR prompt mput * close bye ! echo "Upload successful! $DATE_TIME" >> $MYLOG_DIR/databak.log fi rm -rf $BAK_DIR/*