Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份
生活随笔
收集整理的這篇文章主要介紹了
Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Linux下使用SSH、Crontab、Rsync三工具實(shí)現(xiàn)數(shù)據(jù)自動備份
??????? 作為網(wǎng)管人員大概都無一例外的經(jīng)歷過系統(tǒng)備份,尤其是重要系統(tǒng)的備份、重要數(shù)據(jù)庫系統(tǒng)的備份工作。由于備份是個(gè)頻繁而瑣碎的工作,如何能把這個(gè)工作做得即簡單又靈活呢?下面就來介紹在Linux下如何使用SSH和Crontab以及Rsync工具來進(jìn)行數(shù)據(jù)的自動備份與同步。
一、SSH無密碼安全登錄 為什么要選擇SSH 呢?SSH又是什么呢?可以說它是替代以前Telnet的遠(yuǎn)程登錄工具,SSH的英文全稱是Secure Shell。用戶可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,這樣即使網(wǎng)絡(luò)中的***能夠劫持用戶所傳輸?shù)臄?shù)據(jù),如果不能解密的話,也不能對數(shù)據(jù)傳輸構(gòu)成真正的威脅。而且SSH的數(shù)據(jù)傳輸是經(jīng)過壓縮的,可以加快傳輸?shù)乃俣?#xff0c;這就是SSH 目前能替代Telnet遠(yuǎn)程登錄工具的原因。 說到安全,SSH提供兩種級別的安全驗(yàn)證,一種是基于口令的安全驗(yàn)證。只要用戶知道自己賬號和口令,就可以登錄到遠(yuǎn)程主機(jī)。所有傳輸?shù)臄?shù)據(jù)都會被加密,但是不能保證用戶正在連接的服務(wù)器就是用戶想連接的服務(wù)器,可能會有別的服務(wù)器在冒充真正的服務(wù)器,這存在著潛在的威脅。一種是基于密匙的安全驗(yàn)證。需要依靠密匙, 也就是用戶必須為自己創(chuàng)建一對公匙,密鑰,并把公用密匙放在需要訪問的服務(wù)器上。如果需要連接到SSH服務(wù)器上,客戶端軟件就會向服務(wù)器發(fā)出請求,請求使用用戶的密匙進(jìn)行安全驗(yàn)證。服務(wù)器收到請求之后,先在服務(wù)器上用戶的主目錄下找到該用戶的公用密匙,然后把它和用戶發(fā)送過來的公用密匙進(jìn)行比較。如果兩個(gè)密匙一致,服務(wù)器就用公用密匙加密“質(zhì)詢”并把它發(fā)送給客戶端軟件??蛻舳塑浖盏健百|(zhì)詢” 之后就可以用用戶的私人密匙解密再把它發(fā)送給服務(wù)器。 下面做的就是利用第二種基于密匙的安全驗(yàn)證的登錄,具體方法如下: 使用如下命令在需要備份的機(jī)器上創(chuàng)建一對公鑰/密鑰: #ssh-keygen -t rsa Generation public/private rsa key pair. Enter file in which to save the key(/root/.ssh/id_rsa): Enter passphrase(empty for no passphrase): Enter same passphrase again: Your identiflcation has been save in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_ras.pub. The key fingerprint is: c3:a0:de:f8:24:8e:f6:0d:ed:0a:b0:a2:2d:aa:d3:8b root@localhost.localdomain 這期間一直按回車即可,這樣公匙/密鑰就創(chuàng)建完畢。 使用如下命令把公匙傳到需要備份的服務(wù)器上: #ssh 192.168.1.2 #mkdir .ssh;chmod 0700 .ssh 遠(yuǎn)程登錄到需要備份的服務(wù)器上并且創(chuàng)建.ssh目錄。 #scp .ssh/id-rsa.pub 192.168.1.2 : .ssh/authorized_keys2 上述命令可以把公鑰遠(yuǎn)程傳過去。 這樣一個(gè)SSH基于密匙的安全驗(yàn)證登錄就簡單的做完了,現(xiàn)在就可以從192.168.1.1直接用“ssh 192.168.1.2”無密碼自動登錄過去了,這樣就簡單而又安全的實(shí)現(xiàn)了自動登錄目的, 可以為下面定時(shí)做備份打下前題。 二、定時(shí)數(shù)據(jù)同步 這里把定時(shí)觸發(fā)和同步一起來簡單介紹一下,Crontab是個(gè)能定時(shí)執(zhí)行命令的一個(gè)工具, 它是用來讓使用者在固定時(shí)間或固定間隔執(zhí)行程式之用,下面就介紹一下這個(gè)命令的常用參數(shù)。 Crontab命令參數(shù): -e執(zhí)行文字編輯器來設(shè)定時(shí)程表,內(nèi)定的文字編輯器是VI,如果你想用別的文字編輯器,則請先設(shè)定VISUAL環(huán)境變數(shù)來指定使用那個(gè)文字編輯器(比如說setenvVISUALjce)。 -r刪除目前的時(shí)程表。 -I列出目前的時(shí)程表。 Crontab時(shí)程表示格式如下:f1 f2 f3 f4 f5 command 其中,f1是表示分鐘,f2表示小時(shí),f3表示一個(gè)月份中的第幾日,f4表示月份,f5表示一個(gè)星期中的第幾天。Command表示要執(zhí)行的命令。當(dāng)f1為 時(shí)表示每分鐘都要執(zhí)行command,f2為*時(shí)表示每小時(shí)都要執(zhí)行程式,其余類推。當(dāng)f1為a-b時(shí)表示從第a分鐘到第b分鐘這段時(shí)間內(nèi)要執(zhí)行,f2為a-b時(shí)表示從第a到第b小時(shí)都要執(zhí)行。當(dāng)f1為*/n時(shí)表示每n分鐘個(gè)時(shí)間間隔執(zhí)行一次,f2為*/n表示每n小時(shí)個(gè)時(shí)間間隔執(zhí)行一次,其余類推。當(dāng)f1為a,b,C,......時(shí)表示第a,b,C,......分鐘要執(zhí)行,f2為a,b,C,...... 時(shí)表示第a,b,C,......個(gè)小時(shí)要執(zhí)行,其余類推。當(dāng)然也可以將要定時(shí)執(zhí)行的命令存放在預(yù)備文檔里,這里就得用crontab file的方式來設(shè)定時(shí)程表。 三、數(shù)據(jù)同步 現(xiàn)在來介紹一下如何讓數(shù)據(jù)同步的一個(gè)工具,Rsync可以讓數(shù)據(jù)同步,下面看一下一些Rsync的主要參數(shù): -V,--verbose 輸出的信息; -q,--quiet 安靜模式,幾乎沒有信息產(chǎn)生.常用在以cron執(zhí)行rsync; -a,--archive archive mode權(quán)限保存模式,相當(dāng)于-rlptgoD 參數(shù); -p,--perms 保留檔案權(quán)限; -O,--owner保留檔案所有者(root only); -g,--g rouP 保留檔;案群; -D,--devices 保留device 信息(root only); -e,--h=COMMAND定義所使用的remote shell; -4, --ipv4 使用IPv4協(xié)議; -6, --ipv6 使用IPv6協(xié)議; 下面看一下如何通過SSH和Rsync工具組合使用方法: #rsync -ave ssh 192.168.1.2:/home/ftp/pub/ /home/ftp/pub/ 需要注意的是,源端目錄名稱末尾的/。在源說明中后綴/通知rsync復(fù)制該目錄的內(nèi)容,但不復(fù)制目錄文件自身。要想把目錄包含在要復(fù)制內(nèi)容的最頂層就要去掉/; 使用SSH傳輸rsync流量具有下述優(yōu)點(diǎn), 可通過網(wǎng)絡(luò)加密數(shù)據(jù),而且速度非常快,使用SSH客戶端密鑰建立的任何信任關(guān)系。如果要在兩臺計(jì)算機(jī)之間保持大型、復(fù)雜目錄結(jié)構(gòu)的同步性(尤其是兩者間的差異很小時(shí)), 那么rsync就是一種使用起來極為方便(并且執(zhí)行速度很快)、隨心所欲的工具。 #crontab -e 0 17 * * 1-5 rsync -ave ssh 192.168.1.2:/my /my 上面的操作"crontab-e"命令是編輯定時(shí)啟動腳本,然后在周一到周五的每天下午5點(diǎn)執(zhí)行SSH遠(yuǎn)程自動登錄然后把192.168.1.2的/my目錄下的所有東西同步到本地的/my目錄下,這樣就達(dá)到了自動數(shù)據(jù)同步備份的目的了。轉(zhuǎn)載于:https://blog.51cto.com/keygen/1142769
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS中实现设备摇动检测
- 下一篇: Android学习笔记26:图片切换控件