Команда Chmod через удаленный сервер с использованием ssh НЕ работает

У меня есть скрипт bash, который копирует файлы с локального на удаленный сервер с помощью scp. Как только передача завершена, я запускаю команду chmod по ssh, чтобы открыть все разрешения. Проблема в том, что он работает с перебоями и НЕ выполняет chmod 777 должным образом все время. Как я могу убедиться, что команда chmod выполнена точно (возможно, с использованием кода возврата или чего-то еще)? У меня настроены ключи ssh, поэтому мне НЕ нужно вводить пароль при выполнении ssh или scp. Ниже приведен фрагмент моего кода

#копируем файлы с локальной машины на удаленный сервер

scp file1.txt file2.txt file3.txt 10.111.222.333:/home/user1/fileDir/

# открываем разрешения на удаленном сервере

ssh -qX 10.111.222.333 chmod -R 777 /home/user1/fileDir

person Anand Patel    schedule 03.06.2021    source источник
comment
Код выхода из команды ssh должен отражать код выхода из команды chmod, то есть, если chmod получает ошибку, ssh также должен возвращать ненулевой код.   -  person Gordon Davisson    schedule 03.06.2021


Ответы (1)


Вы можете попробовать: ssh server "chmod 755 file |echo $?"

который вернет 0

|echo $? проверяет код возврата для запущенной команды.

person nomadic73    schedule 03.06.2021
comment
Если файл или каталог не существует и вы запускаете chmod поверх ssh с |echo $? вы получите статус выхода 1, потому что не существует файла или каталога, вы получите код выхода 0, если все работает так, как ожидалось - person nomadic73; 04.06.2021