在所有服务器上自动化mkdir,chmod和scp

时间:2013-11-02 23:21:00

标签: linux shell scp chmod

这似乎是一个简单的问题,但是,我无法弄明白。我试图在服务器上运行几个小脚本,我遇到了问题。我有一个allhosts文件,其中包含与.sh文件位于同一位置的服务器列表。

脚本,在具有777权限的所有20台服务器上创建目录结构

#!bin/bash
for q in `cat allhosts`
do
ssh $q "mkdir -p /opt/acd/hgf/tom/hanks/"
chmod -R 777 $q "/opt/acd/hgf/tom/hanks/" >/dev/null 2>&1
done

在上面的脚本中,它只是创建目录路径而不是更改该路径的权限。我尝试在单独的脚本中运行该chmod命令,但没有用..

脚本将hanks的内容scp到新服务器中创建的hanks文件夹。

#!bin/bash
for q in `cat allhosts`
do
scp /opt/acd/hgf/tom/hanks/* $q:/opt/acd/hgf/tom/hanks/ >/dev/null 2>&1
done

在这个脚本中,当我运行它时,它不会复制任何服务器。

我知道这是一个非常小的问题,但请检查并让我知道我哪里出错了。提前谢谢..

1 个答案:

答案 0 :(得分:0)

第一个脚本失败,因为它在本地计算机上运行chmod。您应该通过ssh在远程计算机上运行它 - 您可以将其与其他ssh调用结合使用,如下所示:

ssh $q "mkdir -p /opt/acd/hgf/tom/hanks/ ; chmod -R 777 /opt/acd/hgf/tom/hanks/"

我猜第二个脚本失败了,因为第一个脚本没有设置权限;它看起来还不错。