Linux用户登录自动拷贝文件,linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录...
原文出處:?http://blog.csdn.net/five3/article/details/8648484
最近需要寫一個腳本備份各個服務器上的程序到一個指定服務器上,本來以為查查rsync命令的使用321就能搞定,結果rsync命令要支持自動登錄還是要配置服務和參數,又不確定網上說的配置的行不行,因為都是一個樣,但是沒有說明頭尾,所以選擇了一個嘗試代價較小的ssh自動登錄來替代之。
ssh大家都能用到,通常我們用到的功能基本就是登錄,或者遠程執行shell命令。
##登錄
ssh?loginuser@host_or_ip
##執行遠程命令
ssh?loginuser@host_or_ip?commands
但通常要是執行命令的話,都是執行shell腳本,肯定不想每次自己再輸入密碼,就不能自動化也就少了快感啦。所以要讓ssh能自動登錄,方法好像有很多,這里就用嘗試代價最小的,公鑰認證的方式。具體操作見下:
A:為本地機
B:為遠程服務器【被登錄】
1、在A上生成ssh的私鑰和公鑰【生成的文件都在~/.ssh目錄下】
ssh-keygen?-t?rsa?????##需要3次回車
ssh-keygen?-t?rsa?-P??##僅一次回車
2、把A的公鑰內容傳到B的用戶目錄的.ssh文件夾下的authorized_keys文件中
scp?~/.ssh/id_rsa.pub?B_user@B_host_or_ip:~/.ssh/authorized_keys??##希望每次自動登錄用什么用戶,這里的B_user就用什么帳號,因為默認會考到這個帳號下.ssh中
注意:一定要把內容放到authorized_keys文件里,如果這個文件已經存在,那就追加到后面即可,不要覆蓋了。
3、A再用ssh進行操作時就不需要輸入密碼了
ssh?B_user@B_host_or_ip??##直接登錄成功
SCP和ssh是一套的,只不過這個工具用來在linux之間進行文件傳輸的,用的和ssh一樣的安全傳輸協議。所以在ssh能夠自動登錄之后,使用scp命令進行服務器間的文件復制也就不要手動輸入密碼了,其實這樣此時已經可以實現shell腳本自動備份文件的功能了,因為scp就是一個服務器間的copy程序,scp就是安全copy的意思,scp常用的命令為:
scp?/path/to/source?user@des:/path/to/local???##本地賦值到遠程
scp?user@source:/path/to/source?/path/to/local??##遠程復制到本地
Rsync
命令是一個遠程同步程序,與scp相比,它可以以最小的代價備份文件,只備份有差異的文件,這樣每次備份就少了很多時間,此外在傳輸協議上除了自身的協議之外,還支持以ssh的方式傳輸。只要加個ssh參數即可,常用的命令格式:
rsync?-avH?[ssh]?/path/to/source?user@des:/path/to/local??##本地同步到遠程,推
rsync?-avH?[ssh]?user@des:/path/to/source?/path/to/local??##遠程同步到本地,拉
同樣的,這個命令在ssh能夠自動登錄后就可以不用輸入密碼就可以自動同步文件了,當然這個工具自己也可以支持不輸入密碼的命令,--password-file=/path/to/pwd,只不過還需要配置rsync服務,比較麻煩,以后有必要了再試。
shell能自動執行備份了,還有就是希望能定期自己備份,別老是人去觸發,這個時候就用到linux的任務計劃命令crontab,其常用的命令格式為:
*?*?*?*?*?/command_path
前5個*依次代表
分鐘:0-59
小時:1-23
日期:1-31
月份:1-12
星期:0-6(0表示周日)
還可以用一些特殊符號:
*:?表示任何時刻
,: 表示分割
-:表示一個段,如第二端里:?1-5,就表示1到5點
/n :?表示每個n的單位執行一次,如第二段里,*/1,?就表示每隔1個小時執行一次命令。也可以寫成1-23/1.
00?8,12,16?*?*?*?/dataapp.sh
30?2?*?*?*?/dataapp.sh
10?8,12,16?*?*?*??/dataapp.sh
10?8,12,16?*?*?*??/dataapp.sh
10?8,12,16?*?*?*??/dataapp.sh
總結
以上是生活随笔為你收集整理的Linux用户登录自动拷贝文件,linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql到mysqli转变表_利用my
- 下一篇: linux服务器做页面,linux服务器