iT邦幫忙

DAY 30
3

我與BASH shell scripting的每一天系列 第 30

我與BASH的每一天 - [30] 自動將檔案上傳到另一機器 - ssh、ssh-keygen 與 scp

示範如何設定ssh認證,達到自動登入、傳檔的目的。
我在測試機器上進行一些壓力測試,同時會將測試結果記錄到log檔中。但是為了避免因為機器故障而拿不到log檔來分析結果,或者是想要將log集中到另一部機器上分析,我必須讓log自動上傳到另一部機器上。在Linux系統間傳送檔案,最方便的工具就是scp了。scp支援ssh的加密方式,所以必須預先輸入密碼才能傳送資料。但是在彼此互信的機器上每次都要密碼也很不方便,所以可以事先建立本機的public key,並儲存在對方的機器上,如此就可以不必每次登錄或傳檔都需要輸入密碼了。

產生public key的方式如下:

  1. 先透過ssh-keygen在本機產生一對 key (key pair),在命令提示下輸入本機ssh的密碼。
  2. 產生的public key放在家目錄下的**.ssh/目錄底下,檔名為id_rsa.pub**。
  3. 利用scp將這個id_rsa.pub檔案複製到遠端機器上,但是將名稱改成authorized_keys,存放的位置一樣是該用戶家目錄底下**.ssh/**目錄裡。
  4. 此後就無需再輸入密碼就可以進行sshscp的動作了。

接下來我就可以在我的壓力測試程式中加上這麼一行程式,讓他在每次完成一段測試後就將log傳送到另一機器上:

scp -B ${files} ${user}@${host}:

[系列文章]

我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
我與BASH的每一天 - [4] 利用awk來擷取特定欄位-2
我與BASH的每一天 - [5] 利用awk來擷取特定欄位-3
我與BASH的每一天 - [6] 利用cut來擷取特定欄位
我與BASH的每一天 - [7] grep指令的妙用 - 1
我與BASH的每一天 - [8] grep指令的妙用 - 2
我與BASH的每一天 - [9] 正規化表示法 - 1
我與BASH的每一天 - [10] 正規化表示法 - 2
我與BASH的每一天 - [11] 正規化表示法 - 3
我與BASH的每一天 - [12] 正規化表示法 - 4
我與BASH的每一天 - [13] sed - 1
我與BASH的每一天 - [14] sed - 2
我與BASH的每一天 - [15] sed - 3
我與BASH的每一天 - [16] 多條件選擇 - case
我與BASH的每一天 - [17] 建立自動化的暫存檔 - mktemp
我與BASH的每一天 - [18] if 條件判斷的正規化用法
我與BASH的每一天 - [19] 複合式的條件判斷
我與BASH的每一天 - [20] 代表參數位置的特殊變數符號與shift
我與BASH的每一天 - [21] 特殊的參數變數符號: $@ 與 $*
我與BASH的每一天 - [22] while-loop與array的結合
我與BASH的每一天 - [23] 顯示程式執行的進度
我與BASH的每一天 - [24] 打包initrd image
我與BASH的每一天 - [25] 紀錄鍵盤動作的命令 - script
我與BASH的每一天 - [26] 使用者參數選項 - getopts
我與BASH的每一天 - [27] getopts 的錯誤控制設計
我與BASH的每一天 - [28] 分割檔案 - split
我與BASH的每一天 - [29] 同時將訊息輸出至畫面與重導到檔案 - tee


上一篇
我與BASH的每一天 - [29] 同時將訊息輸出至畫面與重導到檔案 - tee
下一篇
我與BASH的每一天 - [31] 總結
系列文
我與BASH shell scripting的每一天31

2 則留言

0
ted99tw
iT邦高手 1 級 ‧ 2012-10-25 11:03:18

筆記筆記筆記

chiounan iT邦研究生 1 級‧ 2012-10-29 23:27:17 檢舉

感謝您的支持。

0
SunAllen
iT邦高手 1 級 ‧ 2012-10-25 21:40:12

恭喜chiounan大大,鐵人賽五連霸達陣讚讚讚灑花灑花灑花

chiounan iT邦研究生 1 級‧ 2012-10-29 23:26:56 檢舉

感謝您的鼓勵與支持。

我要留言

立即登入留言