我一直在尝试自动化将许多用户目录从一个主机转发到另一个主机的过程。我已经设置了一个SSH密钥对,这样用户就可以直接从服务器A转到服务器B,而无需提示输入密码。问题是当我以root身份运行命令时,而不是循环遍历每个用户帐户并仅同步该特定用户目录中的数据,它从所有用户的根级目录执行同步,从而创建根目录结构以及每个用户目录中的所有子目录!
我正在运行的命令是:
(以root身份):
#!/bin/bash
for user in $(</root/scripts/users.txt)
do
su - $user -c "chmod 600 .ssh/*;rsync -avvh --stats --delete --exclude ".*/" --exclude=".*" . remotehost:."
done
如果我在命令行上以root身份运行命令(即su为用户名,然后在引号内执行命令,它工作正常。如果我以root身份运行命令并更改引号内的命令只是要求应该是它的路径显示用户主目录,所以我迷失了为什么这不仅仅是改变到该特定用户,将该用户主目录中的数据与远程主机同步,然后转移到下一个用户。 / p>
帮助!?!