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/*
來源:https://www.cheshirex.com/1774.html