前幾天做專案中有資料同步的功能(包括資料庫表資料的同步和檔案同步),對於在兩台伺服器之間同步檔案,研究了一下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 也挺麻煩的。於是研究了下,發現並不複雜,這裡總結一下 如...