Linux数据库、配置文件备份、SCP免密码传输脚本

11 篇文章 0 订阅
5 篇文章 0 订阅

1. 数据库备份脚本

#!/bin/bash
mysqldump -uroot -p密码 seven > /home/work/bak/data_bak/bk_seven$(date +%Y%m%d_%H%M%S).sql;
mysqldump -uroot -p密码 vehicle_v2 --ignore-table=vehicle2.street  --ignore-table=vehicle_v2.area --ignore-table=vehicle_v2.gpsAttachMsg  --ignore-table=vehicle_v2.gpsdata_twomin   > /home/work/bak/data_bak/bk_vehicle_v2$(date +%Y%m%d_%H%M%S).sql;

解释:第一库seven全库备份;备份到/home/work/bak/data_bak/下,以时间命名,第二库也是全库备份但是忽略库中几个表;

2. 配置文件备份

#!/bin/sh
#配置文件备份
#备份地址
BACKUP_DIR="/home/work/bak/conf_bak/"
DATE=$(date +%Y%m%d_%H%M%S)
#需要备份的文件,单引号空格单引号空格 形式
CONF_FILES=('/etc/nginx/conf.d/reverse-proxy.conf' '/etc/nginx/conf.d/construn-app-nginx.conf' '/etc/nginx/nginx.conf')

#检测文件夹是否存在
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir "$BACKUP_DIR"
  echo "备份文件夹创建成功"
fi

for conf_file in ${CONF_FILES[@]}; do
  #  判断文件是否存在
  if [ -f $conf_file ]; then
    #  文件重命名将所有"/"替换为"_"
    conf_file_rename=${conf_file//\//_}
    #  备份操作,将文件名中第一个"_"替换为""
    cp -R $conf_file "$BACKUP_DIR${conf_file_rename/_/}-$DATE.bak"
  fi
done

#删除5天前的所有文件
find /home/work/bak/* -type f -mtime +5 -exec rm {} \;

3. SCP免密码登陆传输

#!/bin/sh
expect -c "
  spawn scp -r $1 root@172.17.**.**:/home/work/
  expect {
    \"*password*\" {set timeout 300; send \"密码\r\";}
  }
expect eof"

expect未找到使用:yum install -y expect 安装一下

使用方法:sh sendTo.sh vehicle.jar

4. 定时任务配置

crontab -e 按i进行编辑 :wq!保存

# 定时每天早上4点备份seven、vehicle_v2数据库
0 4 * * * sh /home/work/script/bkMysqlOne.sh
# 备份配置文件
0 3 * * * sh /home/work/script/bk_conf.sh

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值