crontab新增系統定時任務--資料庫定時備份指令碼&傳輸檔案到阿里雲伺服器定時指令碼
阿新 • • 發佈:2018-11-11
前言
由於公司網站被黑客攻擊,導致部分資料丟失,需要使用0.6個比特幣贖回,因為建立資料安全對策,提高網站和資料安全級別,同時進行資料定時備份,並將資料傳輸阿里雲伺服器存放,特此記錄。
1,A,B伺服器之間建立信任
https://blog.csdn.net/cserchen/article/details/18556493
在A伺服器 ssh-keygen生成金鑰用於信任關係生成
執行即可:scp -P22 ./id_rsa.pub [email protected]:/root/.ssh/authrorized_keys
之後scp上傳檔案即可不用輸密碼
2,資料庫備份執行指令碼:
db_backup_questionnaire.sh
#!/bin/bash
# 資料庫認證
user="***"
password="***"
host="***"
db_name="***"
# 其它
backup_path="/usr/local/_backup/mysql/questionnaire"
date=$(date +"%Y-%m-%d-%H-%M-%S")
# 設定匯出檔案的預設許可權
umask 177
# Dump資料庫到SQL檔案
mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$date.sql
chmod 777 -R $backup_path/
# scp傳輸命令
scp /usr/local/_backup/mysql/questionnaire/$date.sql [email protected]:/usr/local/_backup/mysql/questionnaire
# 刪除10天之前的就備份檔案
find $backup_path/* -mtime +10 -exec rm {} \;
db_backup_scmd.sh
#!/bin/bash
# 資料庫認證
user="***"
password="***"
host="***"
db_name="***"
# 其它
backup_path="/usr/local/_backup/mysql/scmd"
date=$(date +"%Y-%m-%d-%H-%M-%S")
# 設定匯出檔案的預設許可權
umask 177
# Dump資料庫到SQL檔案
mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$date.sql
chmod -R 777 $backup_path/
# scp傳輸命令
scp /usr/local/_backup/mysql/scmd/$date.sql [email protected]:/usr/local/_backup/mysql/scmd
# 刪除30天之前的就備份檔案
find $backup_path/* -mtime +10 -exec rm {} \;
3.使用命令:crontab -e 設定指令碼定時執行規律(設定為20分鐘執行一次指令碼)
crontab -l 檢視定時任務列表
crontab -r 移除定時任務
4,常見問題:
a,資料夾許可權問題導致的複製失敗或者上傳失敗,通過chmod -R 755 **給檔案授權即可
b,scp命令執行成功,但是到B伺服器卻並沒有見到上傳的檔案:
此時情況一:資料夾授權問題;
情況二:上傳檔案目錄問題,更改上傳檔案目錄到根目錄,一級一級上傳直至目錄正確
c,。。。。。
還請多多關注哦。