1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux新建备份数据库的脚本文件 Linux下shell脚本:自动每日备份网站文件和数据库上

linux新建备份数据库的脚本文件 Linux下shell脚本:自动每日备份网站文件和数据库上

时间:2023-12-15 18:44:52

相关推荐

linux新建备份数据库的脚本文件 Linux下shell脚本:自动每日备份网站文件和数据库上

前言

服务器、vps,难免会遇到各种问题,丢失数据,则必然痛心疾首啊!!!

数据无价,so建议养成定期备份的习惯!而且,要多备份几份,本地、网盘、FTP空间等,都多保存几份!

这里,就为大家带来一个linux下,利用lftp作为上传方式的shell脚本,配合系统crontab定时计划任务实现每天自动备份网站数据,并上传到FTP空间!

备份脚本

脚本内容如下:

#!/bin/bash

#建议使用root账户登录执行本脚本

#赋予脚本执行权限 chmod +x BackupToFtp.sh

#修改相关账户和路径配置

#开始

MYSQL_USER=root #mysql用户名

MYSQL_PASS=123456 #mysql密码

FTP_USER=ftpuser #ftp用户名

FTP_PASS=123456 #ftp密码

FTP_IP=123.123.123.123 #ftp地址

FTP_backup=backup #ftp上存放备份文件的目录,请提前自己在ftp空间上创建

WEB_DATA=/home/www #要备份的网站数据目录

MYSQL_PATH=/usr/local/mysql #MYSQL安装路径

DBNAME=dbname #要备份的数据库名称

LOCALbackup_path=/home/backup #本地备份文件存放路径

#结束

#安装FTP LFTP命令工具

echo "#---------------------------------------------------------------------#"

echo "正在ftp lftp客户端工具...."

echo "默认适用CentOS,Debian等系统请先修改本脚本相应位置命令"

echo "若已经安装,请忽略即可"

echo "installing Ftp Lftp...."

echo "#---------------------------------------------------------------------#"

yum install -y ftp lftp

#apt-get install-y ftp lftp

#设置数据库备份文件的名字和旧数据库备份文件的名字(旧:默认为5天前的)

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

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

#设置网站数据备份文件的名字和旧网站数据备份文件的名字(旧:默认为5天前的)

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

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

#删除本地5天前的备份数据

echo "#---------------------------------------------------------------------#"

echo "自动删除本地5天前的备份数据文件...."

echo "Auto delete local backup data files 5 days ago...."

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

cd $LOCALbackup_path

#导出需要备份的数据库为数据库SQL格式

echo "#---------------------------------------------------------------------#"

echo "正在导出需要备份的 $DBNAME 数据库sql备份文件...."

echo "Exporting you set database:$DBNAME to SQL file...."

$MYSQL_PATH/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS $DBNAME > $LOCALbackup_path/$DBNAME.sql

#压缩数据库文件并删除sql文件

echo "正在压缩打包数据库sql备份文件...."

echo "Tar the Database SQL file to tar.gz And delete SQL file...."

tar zvcf $LOCALbackup_path/$DataBakName $LOCALbackup_path/.sql

rm -rf $LOCALbackup_path/.sql

#压缩网站数据

echo "#---------------------------------------------------------------------#"

echo "正在压缩打包网站程序文件...."

echo "Tar the WebData file to tar.gz...."

#tar zvcf $LOCALbackup_path/$WebBakName $WEB_DATA

cd $WEB_DATA

tar zvcf $LOCALbackup_path/$WebBakName *

#上传到FTP空间

echo "#---------------------------------------------------------------------#"

echo "数据打包完成,开始登录FTP空间...."

echo "Start to login to FTP...."

#先进入备份文件路径

cd $LOCALbackup_path

#默认方式:镜像同步,与下面的单个方式任选其一

#------------------------------------------------------------------

lftp -u $FTP_USER,$FTP_PASS -e "mirror -R --only-newer $LOCALbackup_path $FTP_backup" $FTP_IP << EOF

bye

EOF

#------------------------------------------------------------------

#单个文件上传方式,请取消横线内的注释符#并注释掉前面的默认方式

#------------------------------------------------------------------

#lftp -u $FTP_USER,$FTP_PASS $FTP_IP << EOF

#lftp << EOF

#open ftp://$FTP_USER:$FTP_PASS@$FTP_IP

#cd $FTP_backup

#echo "正在上传数据库备份文件...."

#echo "Uploading Database file...."

#put $DataBakName

#echo "正在上传网站程序备份文件...."

#echo "Uploading WebData file...."

#put $WebBakName

#bye

#EOF

#------------------------------------------------------------------

echo "#---------------------------------------------------------------------#"

echo "上传所有备份文件完成..."

echo "Upload all backup files complete..."

echo "请登录FTP空间查看!"

echo "Please login to the FTP check!"

echo "#---------------------------------------------------------------------#"

脚本内容结束

emmm...请原谅博主英语比较差,大部分都是机翻过来的,懒得校正了!

自动备份

配合系统crontab定时计划任务实现每天自动备份

命令:crontab -e

添加定时计划内容:**00 00 * * * /BackupToFtp.sh**

(其中00 00为时间,格式:分/小时,可自行修改,例如:30 23,就是每天23.30运行这个脚本,/BackupToFtp.sh为脚本文件存放路径)

结束语

结束语就是,没有结束语!希望能帮到有需要的人吧!就是这样!

linux新建备份数据库的脚本文件 Linux下shell脚本:自动每日备份网站文件和数据库上传FTP空间...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。