Linux數據庫、配置文件備份、SCP免密碼傳輸腳本

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 [email protected].**.**:/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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章