ethscpall(8)

πŸ“¦ version 12.1.0.1, in centos-stream 9, fedora 43, fedora 44, opensuse-leap 16.0

✨ ethscpall ✨

okay bestie, sit down, hydrate, because this one is genuinely iconic πŸ’… this is ethscpall(8) from the EFSFFCLIRG (Man Page) lineup, and it is exactly the tool you want when you gotta beam files from this system out to a whole crowd of hosts in the fabric. one command, many machines. main character energy fr fr 🫢

πŸ’– NAME πŸ’–

ethscpall β€” copies files or directories from the current system to multiple hosts in the fabric. no cap.

When you're copying large directory trees, use the -t option to improve performance β€” the way it works is it tars and compresses the tree, transfers the resulting compressed tarball to each node, and untars it on each node. so it's giving efficient, honestly 😌

Use this tool for copying data files, operating system files, or applications to all the hosts (or a subset of hosts) within the fabric. that's the whole vibe.

NOTE: read these, they matter, do not skip, I'm serious 🚨 - This tool can only copy from this system to a group of systems in the cluster. To copy from hosts in the cluster to this host, use ethuploadall. - user@ syntax cannot be used when specifying filenames. like, at all. don't try it πŸ™ˆ - Be aware that for the -r option, when copying a single source directory, if the destination directory does not exist it will be created and the source files placed directly in it. - In other situations, the -r option will copy the source directory as a directory under the destination directory. - The -R option will always copy the source directory as a directory under the destination directory. - The -t option will always place the files found in source_dir directly in the destination directory.

πŸŽ€ Syntax πŸŽ€

here's the shape of it, keep it close:

ethscpall [-pq] [-r|-R] [-f  hostfile] [-h 'hosts'] [-u  user] [-B
interface]
source_file ... dest_file

ethscpall [-t] [-pq] [-Z  tarcomp] [-f  hostfile] [-h 'hosts'] [-u
user] [-B  interface]
[ source_dir [ dest_dir]]

πŸ’… Options πŸ’…

every single one, bestie, no skips:

  • --help β€” produces full help text. your little cheat sheet πŸ₯°
  • -p β€” performs copy in parallel on all hosts. go go go πŸ”₯
  • -q β€” does not list files being transferred. quiet luxury, periodt.
  • -r β€” performs recursive copy of directories using scp.
  • -R β€” performs recursive copy of directories using rsync (only copy changed files). so it's like, lowkey efficient.
  • -t β€” performs optimized recursive copy of directories using tar. dest_dir is optional. If dest_dir is not specified, it defaults to the current directory name. If both source_dir and dest_dir are omitted, they both default to the current directory name.
  • -h hosts β€” specifies the list of hosts to copy to.
  • -f hostfile β€” specifies the file with hosts in cluster. Default is /etc/eth-tools/hosts file.
  • -u user β€” specifies the user to perform copy to. Default is current user.
  • -B interface β€” specifies local network interface to use for scp or rsync.
  • -Z tarcomp β€” specifies a simple tar compression option to use, such as --xz or --lzip.
    • When the host list is large, better compression may be preferred.
    • When host list is small, faster compression may be preferred.
    • -Z ' ' will not use compression. Default is -z.
  • source_file β€” specifies the file or list of source files to copy.
  • source_dir β€” specifies the name of the source directory to copy. If omitted, current working directory is used.
  • dest_file or dest_dir β€” specifies the name of the destination file or directory. If copying multiple files, use a directory name instead as the destination. If the file or directory name is omitted, the source file or current directory name is used, respectively.

🌸 Example 🌸

the receipts, exactly as they are:

# efficiently copy an entire directory tree

ethscpall -t -p /usr/src/eth/mpi_apps /usr/src/eth/mpi_apps

# copy a group of files

ethscpall a b c /root/tools/

# copy to an explitly specified set of hosts

ethscpall -h 'arwen elrond' a b c /root/tools

HOSTS='arwen elrond' ethscpall a b c /root/tools

# copy to an explitly specified set of hosts over local eth2 nic

echscpall -h 'arwen elrond' -B eth2 a b c /root/tools

πŸ¦‹ Environment Variables πŸ¦‹

The following environment variables are also used by this command:

  • HOSTS β€” List of hosts; used if -h option not supplied.
  • HOSTS_FILE β€” File containing list of hosts; used in absence of -f and -h.
  • FF_MAX_PARALLEL β€” When the -p option is used, maximum concurrent operations are performed.

and that's the whole page, bestie, you ate it πŸ’– mwah. this was the ethscpall(8) page, Copyright(C) 2020-2024 Intel Corporation β€” go forth and copy responsibly, ily πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from