我在一个文件夹中有2个流浪汉机器,而且我经常不得不同时使用ssh并运行相同的命令。基本上我做:
$ vagrant ssh machine1
[vagrant@machine1 ~]$ sudo rm -rf /tmp/cache/*
[vagrant@machine1 ~]$ exit
$ vagrant ssh machine2
[vagrant@machine2 ~]$ sudo rm -rf /tmp/cache/*
[vagrant@machine2 ~]$ exit
我想创建一个别名或一个我可以运行的小脚本,它会做那些事情,所以我不需要一次又一次地输入所有这些...
有什么想法吗?
答案 0 :(得分: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
答案 1 :(得分: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设置,对当前启动的所有框运行命令。