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