shell腳本中解決SCP命令需要輸入密碼的問題


答案:使用密鑰文件。

--------------------------------------------------------------------------------------------------
這里假設主機A(192.168.1.3)用來獲到主機B(192.168.1.4)的文件。
在主機A上執行如下命令來生成配對密鑰:
ssh-keygen -t rsa
遇到提示回車默認即可,公鑰被存到用戶目錄下.ssh目錄,比如root存放在:
/root/.ssh/id_rsa.pub

將 .ssh 目錄中的 id_rsa.pub 文件復制到 主機B 的 ~/.ssh/ 目錄中,並改名為 authorized_keys,
到主機A中執行命令和主機B建立信任,

例(假設主機B的IP為:192.168.100.4):scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys

下面就可以用scp、ssh命令不需要密碼來獲取主機B的文件了
ssh 192.168.100.4 回車就不需要密碼了。
注:其實id_rsa.pub內容添加到對方機器的authorized_keys中就行了

轉載:http://blog.csdn.net/chris_playnow/article/details/22579139

--------------------------------------------------------------------------------------

拷貝其他服務器附件歸集到主服務器bash shell

[test@abc01.cn ~]$ cat copy.bash
#!/bin/bash
# copy attachment
scp -r test1@app02.abc.cn:/home/test1/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app02. copy finish"
scp -r test2@app03.abc.cn:/home/test2/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app03. copy finish"

-------------------------------------------------------------------------------

增加定時任務

crontab -e

類似編輯vi  在里面粘貼  

  * */6 * * * username sh /home/user/test/copy.sh

---shift+zz保存,重啟crond服務

root]# service crond restart

--------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM