linux服务器使用FTP备份数据(数据库+网站)脚本

教程大全linux服务器FTP备份,linux服务器数据库备份,linux服务器网站备份

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/*

Posted by 柴郡猫