|Matteo Cypriani dbb0d6bf3a||11 months ago|
|README.md||11 months ago|
|TODO||11 months ago|
|multicopy.sh||11 months ago|
|multiping.sh||11 months ago|
|multissh.sh||11 months ago|
|tabssh.sh||11 months ago|
These utilities are script allowing one to work in parallel with a number of
remote hosts, using utilities such as Parallel SSH (pssh) or fping. Nowadays,
you’re much better off using Ansible, which covers everything these scripts do,
and much more. The only exception might be
All these scripts take as first and mandatory positional argument a host list name “NAME”; the list will be searched according to the following pattern:
$XDG_CONFIG_HOME being equivalent to
$HOME/.config if unset.)
For example, one can call the
multiping.sh script typing:
to use the hosts’ file
The format of such a .lst file is one line per host name or IP address, for example:
192.168.42.1 192.168.42.3 priam
The scripts based on SSH use the local user’s login name as remote login;
this can be changed using the
-l option, that must appear before the
hosts list on the command line, for example:
multissh -l root openwrt_machines opkg install screen
The provided scripts are detailed in the sequel.
Tests the connectivity with the hosts of the list by sending them a ICMP echo packet.
ansible <group> -m ping
Opens a GNU Screen tab with an interactive SSH session for each host of the hosts list. Must be run inside of an existing Screen.
Ansible replacement: not really. Maybe see this StackOverflow question for inspiration: https://stackoverflow.com/questions/47887379/how-could-i-open-a-ssh-shell-to-remote-with-ansible
Runs the same command on every host of the hosts list.
Ansible replacement: use Ansible’s
command module (i.e. the default
module), or the
shell module if using pipes or redirections.
ansible <group> -a '<command>' ansible <group> -m shell -a '<command with pipes>'
Deploys one or more files in parallel on every host of the hosts list. The files are copied in the remote user’s home directory.
By default, the files are transferred one by one, to make sure you notice
the errors for each file (bad permissions, out of space, etc.), but you
can use the
-P switch to transfer them all at once (which is much faster).
While it is possible to transfer directories with the default option, to
synchronise directories one would rather use the
-r option, that uses
prsync rather than pscp to transfer the files. With the
-R option, the
remote files that are not in the local copy will be deleted (rsync’s
--delete option). In both cases, the transfer is done with rsync’s
Please note that unlike rsync, prsync cannot handle multiple local files,
-P option is ignored when passed along with
multiping (see above)
Ansible replacement: use Ansible
copy module. See also modules
(to retrieve files instead of pushing them),
ansible <group> -m copy -a 'src=/local/path dest=/remote/path'