定時備份數據庫腳本并壓縮刪除歷史文件
1.創建備份腳本
vim? ?mysql-backup.sh
#!/bin/bash
bak=`date +%y-%m-%d-%H`
tool=/usr/local/mysql/bin/mysqldump
$tool -uroot -p密碼 --lock-all-tables --all-databases | gzip > /路徑/$bak\.sql.gz
find 路徑 -name "name_*.sql.gz"? -type f? -mtime +7 -exec rm -rf{} \; > /dev/null 2>&1
路徑是sql備份文件的文件夾
-name這些就找文件名了
-mtime +7是每隔7天刪除一次
2.為腳本添加執行權限
chmod +x mysql-backup.sh
3.添加定時計劃
# crontab -e (和vim編輯器一樣)
# crontab配置文件格式:分 時 日 月 周
命令 crontab -e
0 0? *? ?*? ?*? ? ? ? ?//mysql-backup.sh? ? ? ? ? ? 表示每天0點0分執行備份
4.重啟crontab
/etc/init.d/crond restart
如果需要將備份文件傳送到另外一個服務器,需要通過scp,需要在兩邊設備上做無密碼驗證
本地服務器:A
遠程服務器:B
1.在 A 上運行 ssh-keygen -t rsa?在/root/.ssh 下生成id_rsa 和 id_rsa.pub 兩個文件
在/root/.ssh下復制備份一份id_rsa.pub 命名為 id_rsa.pub.A
2. 在 B 上也同樣運行 ssh-keygen -t rsa
3. 在 B 的 /root/.ssh 下創建authorized_keys文件 把A 中 id_rsa.pub.A 文件 傳到 B /root/.ssh 下
通過 cat 命令 把id_rsa.pub.A 寫到 authorized_keys 文件中
scp ./id_rsa.pub.A??B的IP:/root/.ssh
cat id_rsa.pub.A??>>?authorized_keys
4.配置完畢
測試:
scp ./文件 192.168.190.208:/root/.ssh??無需輸入密碼執行成功
在配置完無需密碼進行傳送后在腳本下添加一句
scp 源路徑 目的ip:目的路徑