① 如何在linux伺服器中實現數據實時同步及備份
科技時代,任何行業都離不開數據的分析以及統籌,如果掌握了最關鍵的數據及技術,那成功就指日可待,所以數據對於一個企業來說,就是最無形的財富,而一個企業的數據基本都有伺服器保存及管理著,如何保證數據安全,實現數據同步及備份?誠愷科技小編就同大家一起來看看在Linux伺服器中利用rsync配合inotify實現數據實時同步及備份的方法。
rsync:可以鏡像保存整個目錄樹和文件系統。可以很容易做到保持原來文件的許可權、時間、軟硬鏈接等等。第一次同步時 rsync 會復制全部內容,但在下一次只傳輸修改過的文件。
方案:起初用rsync進行數據備份是利用計劃任務,定時執行一下命令實現rsync的同步,但最近開發這邊修改比較頻繁,看來需要實時同步備份來完善備份機制!所以需要利用inotify觸發器來改善!達到一旦指定的位置有了新的變動就將其同步!
環境:
CentOS 6.4 64位
rsync-3.0.9
inotify-tools-3.14
說明:
10.10.1.6 (rsync+inotify)----------網站程序(/data0/htdocs/)
10.10.1.9 (rsync)------------------網站程序備份(/data0/htdocs/)
目的:
實現10.10.1.6的/data0/htdocs/目錄下發生任何變動都將實時同步到10.10.1.9的/data0/htdocs/上(另,這兩台都跑有keepalived+nginx,來實現出現故障自動切換的容災,詳細配置會在後面補上)
一、web伺服器10.10.1.6 (rsync+inotify)
1、准備軟體包
2、安裝Rsync
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密碼認證文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncd.secrets建立密碼認證文件
*其中111111可以自己設置密碼,rsyncd.secrets名字也可以自己設置;
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
# chmod 600 /etc/rsyncd/rsyncd.secrets
3、安裝inotify
1)、1234 tar-zxvf inotify-tools-3.14.tar.gz
2)、cdinotify-tools-3.14
3)、./configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、創建rsync復制腳本
此項功能主要是將ftp端的目錄/data0/htdocs/里的內容,如果修改了(無論是添加、修改、刪除文件)能夠通過inotify監控到,並通過rsync實時的同步給10.10.1.9的/data0/htdocs里,下面是通過shell腳本實現的。
[root@web ~]# vim /root/shell/rsync.sh
[root@web ~]# chmod u+x /root/shell/rsync.sh
[root@web ~]# setsid /root/shell/rsync.sh &
#後台運行腳本,關閉shell終端繼續後台運行
rsync.sh腳本加入開機啟動項
# echo "/root/shell/rsync.sh" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
二、備份伺服器10.10.1.9(rsync)
1、准備工作
創建備份目錄:
# mkdir /data0/htdocs
2、安裝rsync(備份主機只安裝rsync)
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用戶與密碼認證文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncd.secrets
[root@backup ~]# less /etc/rsyncd/rsyncd.secrets
root:111111
注意:
請記住,在10.10.1.6端建立的密碼文件,只有密碼,沒有用戶名;而在10.10.1.9里建立的密碼文件,用戶名與密碼都有。
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
#chmod 600 /etc/rsyncd/rsyncd.secrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncd.conf
啟動rsync服務
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
# ps -ef |grep rsync
Rsync服務加入開機啟動項
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
完成,其實這個時候數據已經同步了!
測試一下:
由於/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/為例
主機名可以區別是兩台機器,裡面的內容完全一直,連文件的屬性都一樣
再對裡面修改一下試試,創建一個文件,然後刪除user目錄試試
② linux命令行有沒有可以類似同步網盤的工具
堅果雲支持linux,可以同步任意的文件。
③ 如何讓linux時間與internet時間同步
輸入ntpdate time.nist.gov同步網路時間
結果:3 Jun 15:42:39 ntpdate[4721]: adjust time server 211.115.194.21 offset -0.005885 sec
出現上述結果代表時間同步成功,上面的大致意思為調整時間為伺服器211.115.194.21的時間,相差-0.005885秒的時間
如果上面time.nist.gov伺服器同步不了,可以換下面幾個時間伺服器試試:
time.nist.gov
time.nuri.net
0.asia.pool.ntp.org
1.asia.pool.ntp.org
2.asia.pool.ntp.org
3.asia.pool.ntp.org
同步時間成功後調整硬體時間
#hwclock -w
執行成功後,查看系統硬體時間(不出意外的話,現在date和hwclock現實的時間均為internet時間)
#date
#hwclock
執行上述命令,顯示的時間應該一樣的
定時執行時間同步任務,所以我們利用crontab -e 來添加定時任務
#* */1 * * * root ntpdatetime.nuri.net;hwclock -w
即:每隔一個小時同步一下internet時間。
④ linux時間是如何自動同步的
方法/步驟
安裝ntpdate:
如果你的linux系統有ntpdate這個命令就跳過次步驟。(centos)
yum install ntp
安裝完了之後,你不要做什麼配置,也不需要,直接測試一下
[root@localhost~]#ntpdatetime.nist.gov
進入到crontab
[root@localhost~]# crontab -e
4
增加命令*/10****ntpdatetime.nist.gov 這是指每隔10分鍾執行一次,如果時間頻率不想這么高,可以調整這些 *
⑤ linux的線程同步方式有哪些
三種同步方式:1、互斥鎖(mutex)、2、條件同步(cond)、3、信號量(semphore).
如果還想深入:可以參考http://blog.csdn.net/zsf8701/article/details/7844316。
⑥ linux系統間如何時間同步
可以使用ntpdate命令。ntpdate命令使用網路時間協議(NTP)設置日期和時間,通過輪詢指定的確定正確時間的NTP伺服器來設置本地日期和時間。它從指定的每個伺服器獲得了一些樣本,並應用標准NTP時鍾過濾器和選擇演算法來選擇最好的樣本。
命令格式:ntpdate 時間伺服器
用法示例:
$ ntpdate pool.ntp.org
⑦ 求助: linux下怎麼實現兩個文件夾的同步(shell腳本)
提供一個思路給你
源文件夾和目標文件夾,通過ls -R -1
生成一個文件列表。
然後逐個進行對比
如果不同,則從源文件夾進行復制
其實雙向同步是比較麻煩的。因為如果一旦兩個文件夾的同一個文件都被修改了,那麼就會出現沖突。
用腳本寫,很麻煩...
最好的方法,是搞一個git或者svn一類的版本管理。
⑧ 怎麼同步linux文件
下載安裝完成WinSCP軟體後,進入到需要同步文件的目錄,如下圖
進入到需要同步文件的目錄後,點擊界面上方的同步按鈕,如下圖
點擊後會彈出一個窗口,窗口名為同步
第一個設置項就是本地目錄也就是本地文件存放的位置,本地目錄的下方是遠程目錄,是伺服器文件存放的位置;在方向目錄中如果是伺服器同步文件到本地,就選擇本地,如果是本地文件同步到伺服器就選擇遠程,這里不要選擇錯了,不然後期非常麻煩
接著就是模式設置,模式設置直接選擇默認的「同步文件」選項即可;在同步選項設置里設置設置按照修改時間和選上預覽修改即可
如果選擇了預覽修改,然後會比較文件,當然這樣可能要花一些比較的時間,但是如果設置出錯了預覽能夠及時的發現,不至於產生破壞性的影響。
河南新華網路運營協會
⑨ 從linux中同步文件夾的軟體
用rsync命令同步就行了
rsync可以讓兩個目錄的內容一致,它同步只會同步有更新過的文件,減少傳輸量。可以是本機上的兩個目錄,也可以是本機的目錄同步到伺服器上,還可以是把伺服器上的目錄同步到本機上。
基本命令是 rsync 命令的參數 源目錄 目的目錄
rsync可以基於ssh協議來做,這樣就省去了很多配置rsync server的麻煩,如果兩個機器已經實現ssh無密碼登陸,那麼rsync就會提示輸入密碼,還有一種是通過密鑰文件來實現免密碼,例如下面
1、rsync -vzrtopg --progress -e ssh --delete 用戶名@伺服器IP:/var/www/dirA/ /var/bak/
2、rsync -vzrtopg --progress -e "ssh -i /path/pwd.pem" --delete 用戶名@伺服器IP:/var/www/dirA/ /var/bak/
就是把伺服器上的dirA目錄同步到本地的/var/bak目錄下,其中方法1是用戶已經做了ssh免密碼登陸,方法2是通過密鑰(存放在/path 下的pwd.pem文件)來同步
⑩ Linux進程同步
(1)管道(pipe)和有名管道(FIFO)
(2)信號(signal)
(3)消息隊列
(4)共享內存
(5)信號量
(6)套接字(socket)