我的問題是將.py文件從客戶機複製到遠程服務器,然後將.py腳本運行到遠程服務器。Linux - 從客戶端向遠程服務器運行命令
注:我需要執行相同的服務器數爲n所以基本上我在這裏希望創造一種自動化的腳本,將這樣做。
從我的同事我才知道,爲了實現自動化,密碼登錄少是必須的(種的先決條件)。
爲了達到同樣的,我首先複製公鑰到我的遠程服務器(手動),然後創建一個腳本,不SCP的shell腳本從客戶端複製到遠程。 shell腳本負責運行.py文件。
添加公鑰和scp爲我工作。
請不要讓我知道,如果將公共密鑰實際需要實現自動化完成這個任務。
我在Linux世界初學者,所以如果可能的話,請詳細答案,而回復。
我的腳本:
#!/bin/bash
# Linux/UNIX box with ssh key based login
Script=/home/linuxadmin/installer_linux.py
Destination=/home/linuxadmin/script
time=`date`
output=/home/linuxadmin/output_mainscript/
[email protected]
PASSWORD=12345
#Loop For Installing software on multimple servers
for f in `cat host.txt`;
do
scp $Script $f:$Destination ### Copying file from source to destination
echo "-------- start time "$time"echo "----------"" | tee -a $output/mainscript_log.txt
sshpass ssh $f "sudo /usr/bin/python $Destination/installer_linux.py --no-prompt -u $USERNAME -p $PASSWORD " | tee -a $output/mainscript_log.txt ### Executing files on Destination
echo "-------- End time "$time"echo "----------"" | tee -a $output/mainscript_log.txt
done
如果你想要詳細的答案,你需要寫一個詳細的問題。從你說的話來看,'scp'是否沒有密碼就沒有清楚。如果確實如此,那麼您需要幫助的部分是什麼?如果沒有,它究竟要求什麼(可能還有私鑰的密碼),你是如何複製私鑰的(因此有人可以檢查你是否正確地做了)。沒有確切的命令和確切的輸出,我們不能說出你可能會做錯什麼。 –
對於陳述的問題,答案僅僅是肯定的,複製密鑰是必要的,因爲這將如何進行身份驗證(除非您擁有Kerberos並且正在通過票證進行身份驗證)。但是,這不僅僅是/真正的複製;您必須將密鑰放在授權密鑰列表中。 –
你可能想看看是否可行,它可以完成這項工作:https://github.com/ansible/ansible –