Last active
April 21, 2022 04:51
-
-
Save k8scat/a7def0a3f7b04a8369c719fc875abc26 to your computer and use it in GitHub Desktop.
Sync user home between two remote servers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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