rsync cron job 定時同步任務

2021-07-14 05:12:48 字數 3103 閱讀 8782

前幾天做專案中有資料同步的功能(包括資料庫表資料的同步和檔案同步),對於在兩台伺服器之間同步檔案,研究了一下rsync的同步功能,發現挺好用的,記錄在此。

假設有linux伺服器a和伺服器b,在這兩台伺服器之間同步檔案。

一、rsync同步功能配置

1、安裝rsync(最好用root使用者,伺服器a和伺服器b都需要安裝rsync,推薦使用yum安裝) #

yum install rsync2、

伺服器b

上(例如

10.47.160.93

),配置三個檔案rsyncd.conf(主配置檔案)、rsyncd.secrets(密碼檔案)、rsyncd.motd(rysnc伺服器資訊)

#touch /etc/rsyncd.conf

#建立rsyncd.conf,這是rsync伺服器的配置檔案

#touch /etc/rsyncd.secrets

#建立rsyncd.secrets,這是使用者密碼檔案

#chmod 600 /etc/rsyncd.secrets

#將rsyncd.secrets這個密碼檔案的檔案屬性設為root擁有, 且許可權要設為600, 否則無法備份成功!

(注意:

伺服器a和伺服器b

都要設定該許可權!)

#touch /etc/rsyncd.motd

修改rsyncd.conf檔案: #

vi rsyncd.conf

內容改為:

# /etc/rsyncd: configuration file for rsync daemon mode

uid = root

gid = root

use chroot = no

max connections = 6

pid file = /var/run/rsyncd.pid

read only = no

hosts allow = 10.47.160.0/255.255.255.0

motd file = /etc/rsyncd.motd

log file = /var/log/rsync.log

log format = %t %a %m %f %b

syslog facility = local3

timeout = 600

[zzzcs]

path = /home/nbjk/upload 

list=no

ignore errors

comment = this is sync upload files

auth users = root

secrets file = /etc/rsyncd.secrets

特別注意:

hosts allow中ip和子網掩碼應設定為伺服器a的真實網段資料。

修改rsyncd.secrets密碼檔案: #

vi /etc/rsyncd.secrets

內容改為:

root:zzzcs

啟動rsync服務: #

rsync --daemon

(如果提示沒有找到rsyncd.secrets檔案則說明這個檔案沒有在預設的/etc/路徑下或者沒有建立,只要把這個檔案移動過去就可以了)

3、伺服器a

上,提前安裝好rsync的前提下,配置密碼檔案 #

touch /etc/rsyncd.secrets

#建立rsyncd.secrets密碼檔案 #

chmod 600 /etc/rsyncd.secrets

#將rsyncd.secrets這個密碼檔案的檔案屬性設為root擁有, 且許可權要設為600, 否則無法備份成功!

修改rsyncd.secrets密碼檔案:

#vi /etc/rsyncd.secrets

內容改為:

zzzcs

在伺服器a上執行命令,從伺服器a向伺服器b推送資料: #

rsync -arv --password-file=/etc/rsyncd.secrets /home/nbjk/upload/*  rsync:

說明:

1)上述同步命令中的ip為伺服器b的位址;

2)可以將該命令寫入乙個.sh檔案,並用cron job定時執行,即可達到定時向外網伺服器同步檔案的目的;

在伺服器a上執行命令,從伺服器b拉取資料到伺服器a: #

rsync -arv --password-file=/etc/rsyncd.secrets  rsync:  /home/nbjk/upload

二、linux cron job定時任務

執行命令: #

crontab -e

在定時檔案中寫入定時執行任務,例項如下:

* * * * * /home/***/***/rsync.sh                 每分鐘執行一次同步指令碼;

0 * * * * /home/***/***/rsync.sh                 每小時執行一次同步指令碼;

0 0 * * * /home/***/***/rsync.sh                 每天零點執行一次同步指令碼;

0 9,18 * * * /home/***/***/rsync.sh            每天的9am和6pm執行一次同步指令碼; 

新建乙個/home/

***/***/rsync.sh檔案,在檔案中寫入執行同步的命令:

rsync -arv --password-file=/etc/rsyncd.secrets /home/nbjk/upload/*  rsync: >/dev/null 2>&1

同餘模定理

定義 所謂的同餘,顧名思義,就是許多的數被乙個數d去除,有相同的餘數。d數學上的稱謂為模。如a 6,b 1,d 5,則我們說a和b是模d同餘的。因為他們都有相同的餘數1。數學上的記法為 a b mod d 可以看出當n 1 a和b是模d同餘的.2 存在某個整數n,使得a b nd 3 d整除a b....

同餘模定理

原文 同餘模定理 定義 所謂的同餘,顧名思義,就是許多的數被乙個數 d 去除,有相同的餘數。d 數學上的稱謂為模。如 a 6,b 1,d 5,則我們說 a 和 b 是模 d 同餘的。因為他們都有相同的餘數 1 數學上的記法為 a b mod d 可以看出當 n d 的時候,所有的 n 都對 d 同商...

mysql複製同表資料 MySQL 同表複製資料

我覺得再這麼下去,我真敢說我寫過php了 需求很簡單,在同乙個表中複製資料。以前的 是在php裡先 select 然後 extract 成變數,再組合成乙個大 sql,最後插入。我覺得這樣不好,首先要執行兩次 sql,其次寫那麼一大篇 sql 也挺麻煩的。於是研究了下,發現並不複雜,這裡總結一下 如...