運維小東西 每天備份sql到遠端伺服器上

2022-05-10 04:46:48 字數 1859 閱讀 9581

首先兩台伺服器可以無密碼登入(這個方式比較簡單,當然安全係數會降低)

#ssh-keygen -t rsa

#生成金鑰傳送給遠端伺服器上

#ssh-copy-id ~/root/id_rsa.pub user@host

這樣ssh的時候就不用輸入密碼了。對於crontab這種定時自動執行的任務來說還是比較方便的。

現在就是寫shell備份sql到遠端伺服器的指令碼:

#!/bin/sh

db_name1="

"db_user="

"db_pass="

"bck_dir="

/root/backup

"date=`date +%f`

mysqldump -u$db_user $db_name1 > $bck_dir/db_"

$db_name1

"_"$date

".sql

name1=$bck_dir/db_"

$db_name1

"_"$date

".sql

scp $name1 [email protected]:/home/rainsun/backup

rm -rf $name1

然後就是crontab -e寫定時,這裡對crontab的格式做簡單的說明:

crontab 格式說明

我們可以用crontab -e 新增要執行的命令。 命令執行的結果,無論是標準輸出還是錯誤輸出,都將以郵件形式發給使用者。

新增的命令必須以如下格式:

* * * * * /command path

前五個字段可以取整數值,指定何時開始工作,第六個域是字串,即命令字段,其中包括了crontab排程執行的命令。 各個字段之間用spaces和tabs分割。

前5個字段分別表示:

分鐘:0-59

小時:1-23

日期:1-31

月份:1-12

星期:0-6(0表示週日)

還可以用一些特殊符號:

*: 表示任何時刻

,: 表示分割

-:表示乙個段,如第二端裡: 1-5,就表示1到5點

/n : 表示每個n的單位執行一次,如第二段裡,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1.

43 21 * * * 21:43 執行

15 05 * * *    05:15 執行

0 17 * * * 17:00 執行

0 17 * * 1 每週一的 17:00 執行

0,10 17 * * 0,2,3 每週日,周二,週三的 17:00和 17:10 執行

0-10 17 1 * * 毎月1日從 17:00到7:10 毎隔1分鐘 執行

0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 執行

42 4 1 * *     毎月1日的 4:42分 執行

0 21 * * 1-6   周一到週六 21:00 執行

0,10,20,30,40,50 * * * * 每隔10分 執行

*/10 * * * *        每隔10分 執行

* 1 * * *         從1:0到1:59 每隔1分鐘 執行

0 1 * * *         1:00 執行

0 */1 * * *        毎時0分 每隔1小時 執行

0 * * * *         毎時0分 每隔1小時 執行

2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 執行

30 5 1,15 * *       1日 和 15日的 5:30 執行

至於具體怎麼寫crontab視你任務的重要性而定

做完小東西

想一想,時間過得挺快的,暑假的三分之一就這樣過去了。從工學一號館斷網開始我已經好些天沒更新部落格了。一是自己發懶,二是在做那個練手的小工具沒去想這個。今晚交完專案,塵埃落定,說說這些天的情況和想法。團隊不是天生的,是需要磨合的。我和健輝意見不同的時候挺多的,有時兩個人都挺固執的,就認為自己說的對,這...

oracle 小東西記錄

alter table table name modify id number 修改列型別 alter table table name add state number 新增列 sysdate 直接插入當前時間 to date 2013 06 26 23 59 59 yyyy mm dd hh24...

MySql裡的小東西

1 類似oracle的序列的用法 id int 5 primary key auto increment 2 類似ms sql裡sql 查詢語句中top關鍵字 如果就是top著個含義 select from table limit 10 就行了 如果想取出100 到 200 用 select fro...