linux新建备份数据库的脚本文件夹,分享Linux下WEB、文件、数据库归档备份脚本...

作为运维人员来讲,定期的业务数据备份是必不可少的工作,以便在出现问题时快速恢复数据,保证业务的连续性。

而定期的手动备份效率低而且还容易忘记,所以就写了个Shell脚本进行数据备份。

一、脚本介绍

脚本分归档与传输两个部分1、归档主要对tar命令数据进行打包;

2、数据库使用mysqldump备份到指定文件夹;

3、文件数据使用SCP进行数据的加密传输,为了安全起见数据只有客户端主动拉取。;

4、使用crontab定时执行脚本;

二、服务端归档脚本

#!/bin/bash

#网站数据备份脚本备份脚本

echo "========================================================Backup Time:`echo $(date +%Y-%m-%d_%H:%M:%S)`"

<

参数说明:

BAK_DIR 备份路径;

MYSQLDB 备份的数据库名称;

MYSQLUSR 数据库账号;

MYSQLPASS 数据库密码;

COMMENT

BAK_DIR=/opt/WEB_backup/`date +%Y%m%d`

MYSQLDB=wordpress

MYSQLUSR=root

MYSQLPASS=12345678

if [ $UID -ne 0 ];then

echo "Must to be user root for exec shell."

exit

fi

if [ ! -d $BAK_DIR ];then

mkdir -p $BAK_DIR

echo "$BAK_DIR Create successfully!"

else

echo "$BAK_DIR is exists..."

fi

#备份数据库

mysqldump -u$MYSQLUSR -p$MYSQLPASS $MYSQLDB > "$BAK_DIR"/"$MYSQLDB".sql

#备份网站文件

tar -czf `echo "$BAK_DIR/$MYSQLDB"`_WEB.tar.gz -C /home/wwwroot/ www.xxshell.com

#备份虚拟主机配置文件

cp /usr/local/nginx/www.xxshell.com.conf "$BAK_DIR"/www.xxshell.com.conf

#检测备份是否成功

[ -f "$BAK_DIR"/"$MYSQLDB".sql ] && echo "Backup Database OK!" ||echo "Backup Database failure!"

[ -f "$BAK_DIR"/"$MYSQLDB"_WEB.tar.gz ] && echo "Backup WEBFile OK!" ||echo "Backup WEBFile failure!"

[ -f "$BAK_DIR"/www.xxshell.com.conf ] && echo "Backup VhostFile OK!" ||echo "Backup VhostFile failure!"

#删除15天前的备份文件夹

find /opt/WEB_backup/* -type d -mtime +15 -exec rm -r {} \;

三、客户端备份脚本

#!/bin/bash

#网站备份下载脚本

echo "========================================================Backup Time:`echo $(date +%Y-%m-%d_%H:%M:%S)`"

<

参数说明:

HOSTNAME 要备份的主机(可以是IP地址);

SCP_PORT SSH端口或者传输数据端口;

HOSTUSR SSH用户名

Remote_DIR 要备份的远端路径

Local_DIR 备份的本地路径

注意!备份之前需要先配置与远端服务器免密,免密可以使用下面命令:

ssh-keygen -t rsa #生成公钥一直回车即可

ssh-copy-id -i .ssh/id_rsa.pub root@[主机名]

COMMENT

HOSTNAME=www.xxshell.com

SCP_PORT=22

HOSTUSR=root

Remote_DIR=/opt/WEB_backup

Local_DIR=/opt/

scp -r -P $SCP_PORT $HOSTUSRt@$HOSTNAME:$Remote_DIR/ $Local_DIR

#判断备份是否成功

[ $? -eq 0 ] && echo "Download success!" ||echo "Download failed!"

四、定时任务配置

#每周日2点执行归档脚本,并将结果追加到backup.log中

0 2 * * 0 /bin/bash /opt/WEB_backup/www.xxshell.com_wordpress_backup.sh >> /opt/WEB_backup/backup.log

#每周日3点执行备份脚本

0 3 * * 0 /bin/bash /opt/scp_download.sh >> /opt/WEB_backup/download.log

将crond服务启动并设置自启动

systemctl enable crond --now #启动并设置自启动给

systemctl is-active crond #检查服务是否启动

systemctl is-enabled crond #检查服务是否开机自启动

备份结果995430207a8b7fccec34e9fe55ca30cc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值