Я хочу запустить команду для изменения владельца /home каталогов. пример
Пример:
[root@remoteServer]# ls -l /home
drwxr-xr-x. 17 root root 4096 Sep 9 2014 user1
drwxr-xr-x. 17 root root 4096 Sep 9 2014 user2
drwxr-xr-x. 17 root root 4096 Sep 9 2014 user3
[root@remoteServer]#
[root@remoteServer]#id user1
uid=1101(user1) gid=1200(groupO)
[root@remoteServer]#id user2
uid=1102(user2) gid=1200(groupO)
[root@remoteServer]#id user2
uid=1103(user3) gid=1200(groupO)
Я буду менять владельца этих каталогов следующим образом:
[root@remoteServer]# ls -l /home
drwxr-xr-x. 17 user1 groupO 4096 Sep 9 2014 user1
drwxr-xr-x. 17 user2 groupO 4096 Sep 9 2014 user2
drwxr-xr-x. 17 user3 groupO 4096 Sep 9 2014 user3
Я использую скрипт для этого от localServer. Сценарий таков:
#!/bin/bash
for ip in $(cat ipListFile)
do
ssh -o ConnectTimeout=2 -o StrictHostKeyChecking=no -o PasswordAuthentication=no $ip "for i in /home/*; do chown $(echo $i | awk -F"home/" '{ print $2 }'):groupO $i; done;"
done
Существует проблема в цикле for . Этот цикл работает на локальном удаленном сервере. Но я не могу использовать эту команду на локальном сервере в качестве удаленного сценария для удаленного сервера. Когда я пытаюсь выполнить эту команду на локальном сервере, переменная «$ i» имеет смешное значение, например "17123891".