其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

Linux下FTP自动备份脚本

GG网络技术分享 2025-03-18 16:14 0


大家好,这里是关于[linux服务器使用FTP备份数据(数据库+网站)脚本],[Linux下FTP自动备份脚本]问题的解答,希望对您有所帮助。如果你还想了解更多这方面的信息,请关注本站其他相关内容,共同学习吧!

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

Linux下FTP自动备份脚本

使用该脚本之前,要在需要备份的机器上创建 /home/backup 目录 安装ftp命令

【原文链接:Linux下FTP自动备份脚本 - 冬邦互联】

yum install ftp -y #centos

apt-get install ftp -y #debian ubuntu

mkdir /home/backup

在备份机器上创建存放备份文件的目录,得在ftp上事先创建。 可以配合cron自动执行备份,例如(每天凌晨一点自动执行备份脚本):

00 1 * * * bash /root/backup.sh

#!/bin/bash

#你要修改的地方从这里开始

MYSQL_USER=root #mysql用户名

MYSQL_PASS=eqblog.com #mysql密码 #数据库发送到的邮箱

FTP_USER=yan #ftp用户名

FTP_PASS=eqblog.com #ftp密码

FTP_IP=ftp.eqblog.com #ftp地址

FTP_backup=sql #ftp上存放备份文件的目录,这个要自己得ftp上面建的

WEB_DATA=/data/wwwroot #要备份的网站数据

#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字

DataBakName=Data_$(date +"%Y%m%d").tar.gz

WebBakName=Web_$(date +%Y%m%d).tar.gz

OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz

OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz

#删除本地3天前的数据

rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz

cd /home/backup

#导出数据库,一个数据库一个压缩文件

for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do

(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)

done

#压缩数据库文件为一个文件

tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz

rm -rf /home/backup/*.sql.gz

#压缩网站数据

tar zcf /home/backup/$WebBakName $WEB_DATA

#上传到FTP空间,删除FTP空间5天前的数据

ftp -v -n $FTP_IP << END

user $FTP_USER $FTP_PASS

type binary

cd $FTP_backup

delete $OldData

delete $OldWeb

put $DataBakName

put $WebBakName

bye

END


【原文链接:Linux下FTP自动备份脚本 - 冬邦互联】

标签:

提交需求或反馈

Demand feedback