自动化运维之mussh

Posted on Posted in NoOps
Tips: 本文创建于2015年11月13日,已超过 2 年,内容或图片可能已经失效!

![mussh.jpg][1]

mussh可以实现批量管理多台远程主机的功能。重点mussh执行脚本的功能

[官网][2]

  1. tar zxvf mussh-1.0.tgz #解压出来直接可用  
  2.   
  3. ./mussh --help  
  4. Usage: mussh [OPTIONS] <-h host.. | -H hostfile> [-c cmd] [-C scriptfile]  
  5. mussh --help        for full help text  
  6.   
  7. Send a command or list of commands to multiple hosts.  
  8.   
  9. OPTIONS:  
  10.         --help          This text.  
  11.         -d [n]          Verbose debug.  Prints each action, all hosts  
  12.                         and commands to be executed to STDERR.  'n' can  
  13.                         be from 0 to 2.  
  14.         -v [n]          Ssh debug levels.  Can be from 0 to 3.  
  15.         -m [n]          Run concurrently on 'n' hosts at a time (asynchronous). #用来开启mussh的并发执行操作。在管理的主机比较多时,建议设置此参数  
  16.                         Use '0' (zero) for infinite. (default if -m)  
  17.         -q              No output unless necessary.   
  18.         -i <identity> [identity ..]  
  19.                         Load an identity file.  May be used  
  20.                         more than once.  
  21.         -o <ssh-args>   Args to pass to ssh with -o option. #可以引入ssh参数的具体配置。eg: mussh -o StrictHostKeyChecking=no  
  22.         -a              Force loading ssh-agent.  
  23.         -A              Do NOT load ssh-agent.  
  24.         -b              Print each hosts' output in a block without mingling  
  25.                         with other hosts' output.  
  26.         -B              Allow hosts' output to mingle. (default)  
  27.         -u              Unique.  Eliminate duplicate hosts. (default)   #取出重复的主机名,mussh已经默认  
  28.         -U              Do NOT make host list unique.   #不管主机名是否重复  
  29.         -P              Do NOT fall back to passwords on any host.  This will  
  30.                         skip hosts where keys fail.  
  31.     -l <login>      Use 'login' when no other is specified with hostname.   #指定在远程主机上执行命令的用户  
  32.     -L <login>      Force use of 'login' name on all hosts.  
  33.         -s <shell>      Path to shell on remote host. (Default: bash)   #指定在远程主机上执行脚本的shell路径。eg: mussh -s /usr/bin/python -C mysql_check.py  
  34.         -t <secs>       Timeout setting for e
    ach
     session.  
  35.                         (requires openssh 3.8 or newer)  
  36.         -V              Print version info and exit.  
  37. PROXY ARGS:  
  38.         -p [user@]<host>  
  39.                         Host to use as proxy.  (Must have mussh installed)  
  40.         -po <ssh-args>        Args to pass to ssh on proxy with -o option.  
  41. HOST ARGS:  
  42.         -h [user@]<host> [[user@]<host> ..] #指定远程主机,多个用空格隔开  
  43.                         Add a host to list of hosts.  May be  
  44.                         used more than once.  
  45.         -H <file> [file ..]     #指定一组主机列表  
  46.                         Add contents of file(s) to list of hosts.  
  47.                         Files should have one host per line.  Use  
  48.                         "#" for comments.  
  49. COMMAND ARGS:  
  50. If neither is specified, commands will be read from standard input.  
  51.         -c <command>    Add a command or quoted list of commands and    #指定在远程主机上要执行的命令,多个命令用分号隔开  
  52.                         args to list of commands to be executed on  
  53.                         each host.  May be used more than once.  
  54.         -C <file> [file ..]     #指定一个本机脚本,然后这个脚本会在多个远程主机上运行  
  55.                         Add file contents to list of commands to be  
  56.                         executed on each host.  May be used more  
  57.                         than once.  
  58.   
  59. At least one host is required.  Arguments are in no particular order.  
  60.   
  61. EXAMPLES:  
  62. mussh -H ./linuxhosts -C spfiles/testscript.sh  
  63. mussh -c "cat /etc/hosts" -h myhost.mydomain.com  
  64.   
  65. Comments and Bug Reports: doughnut@doughnut.net  

应用

  1. ./mussh -h root@192.168.1.153 root@192.168.1.222 -c uptime  
  2. root@192.168.1.153: 14:03:05 up  4:58,  2 users,  load average: 0.00, 0.00, 0.00  
  3. root@192.168.1.222: 14:03:04 up 3 days,  5:43,  3 users,  load average: 0.00, 0.00, 0.00  
  4.   
  5. more /home/opsuser/myhosts  
  6.   
  7. 192.168.1.100  
  8. 192.168.1.101  
  9. 192.168.1.102  
  10.   
  11. mussh -H myhosts -l opsuser -c uptime  
  12.   
  13. mussh -o "port=22" -H myhosts -s /usr/bin/python -C "/home/opsuser/checkos.py"  

[1]: https://liuhonghe.me/wp-content/uploads/2015/11/303661845.jpg
[2]: http://sourceforge.net/projects/mussh/

» 转载请注明来源:呢喃 » 自动化运维之mussh

Leave a Reply

Your email address will not be published. Required fields are marked *

three × five =