2015-05-15 117 views
0

我在一個文件夾中有2個流浪機器,而且我經常必須在兩個ssh中運行相同的命令。基本上我做:SSH的別名和在Vagrant虛擬機中運行命令

$ vagrant ssh machine1 
[[email protected] ~]$ sudo rm -rf /tmp/cache/* 
[[email protected] ~]$ exit 

$ vagrant ssh machine2 
[[email protected] ~]$ sudo rm -rf /tmp/cache/* 
[[email protected] ~]$ exit 

我想創建一個別名或一個小腳本,我可以運行,它會做那些事情,所以我並不需要輸入所有連連...
任何想法?

回答

2

要做到這一點,你可以添加一個別名:

alias vssh="vagrant ssh machine1 -c 'sudo rm -rf /tmp/cache/*'; vagrant ssh machine2 -c 'sudo rm -rf /tmp/cache/*'" 

添加到您的個人資料(即在〜/ .bash_profile或類似的文件),然後通過運行重新裝入:

. ~/.bash_profile 
+0

感謝隊友,作品像一個魅力! – MikO

1

如果你想真的很可愛,你可以這樣做:

alias vagrantsshall="function _() { for box in \`vagrant status --machine-readable | sed -nE 's/[0-9]+,([^,]+),state,running/\1/p'\`; do echo $box: && vagrant ssh $box -c \$1; done;}; _" 

這將適用於1至n盒的任何Vagrant設置,針對當前正在運行的所有框運行該命令。

相關問題