嘿,我是全新的Unix,我需要寫一個「shell腳本」(?)來連接到另一個終端並運行一些SQL查詢。我到底怎麼做到這一點?我一直在瀏覽這個板子和其他板子的一些答案,如果我找到了我的答案,我不理解它。Unix沒有密碼的SSH
我能夠手動連接,輸入密碼等,但我需要自動化該過程。我無法訪問Perl(正如一些答案所建議的),我無法編輯etc/shadow文件。所以我認爲這必須嚴格通過Unix本身來完成。這是我目前使用的:
X=`vUser='USER-NAME'
vPass='PASSWORD'
vTable='TABLENAME'
vHOST='HOST-NAME'
vPORT=4443
ssh [email protected]
expect {
"[email protected] password:"{
send -s "'vPass'\r"
}
}
SQL_Query='select * from vTable limit 10'
mysql -p$vPASS -D$vTable -u$vUser P$vPort<<EOF
$SQL_Query
EOF`
echo $X>Output.dat
請詳細解釋所有的答案。我正在嘗試學習。
您可能只是想創建一個無密碼的SSH密鑰對:http://linuxconfig.org/passwordless-ssh 但要小心,您的腳本似乎要以root身份連接到遠程計算機。你真的不應該那樣做,而且你**尤其不應該使用無密碼的密鑰對。 – Mike
是的。在這種情況下,你不應該使用密碼。您也可以在接受的答案中找到創建SSH密鑰的方法[此處](http://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password)。 – Rik
通過ssh禁用root訪問通常被認爲是很好的做法。 – symcbean