Skip to content

Instantly share code, notes, and snippets.

@k8scat
Last active April 21, 2022 04:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save k8scat/a7def0a3f7b04a8369c719fc875abc26 to your computer and use it in GitHub Desktop.
Save k8scat/a7def0a3f7b04a8369c719fc875abc26 to your computer and use it in GitHub Desktop.
Sync user home between two remote servers.
#!/bin/bash
# server1 and server2 are defined in ~/.ssh/config
users=$(ssh server1 "ls /home")
for user in ${users}; do
user_home_found=$(ssh server2 "ls /home" | grep "${user}")
if [[ -n "${user_home_found}" ]]; then
echo "user home already created: ${user}"
continue
fi
user_found=$(ssh server2 "cat /etc/passwd | grep ${user}")
if [[ -z "${user_found}" ]]; then
echo "user not found: ${user}"
continue
fi
echo "create user home: ${user}"
ssh server2 "mkdir -p /home/${user}"
echo "copy user home: ${user}"
scp -3r server1:/home/${user}/.ssh server2:/home/${user}/.ssh
echo "chown user home: ${user}"
ssh server2 "chown -R ${user}:${user} /home/${user}"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment