Я записал один сценарий удара, и он выполняется на фоне в этом сценарии, который я имею, используют следующую команду:
sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /update.out 2> /update.err < /dev/null | echo $! > /update.pid &'
Это хорошо работает. Но я хочу изменить местоположение /update.out
,/update.err
и /update.pid
Так измененная команда для этого:
sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /pra/log/update.out 2> /pra/log/update.err < /dev/null | echo $! > /pra/log/update.pid &'
Теперь я добираюсь, разрешение отклонило ошибку.
Поскольку я изменил путь выходных файлов. Я не уверен, но я думаю, что должен дать разрешение суперпользователя как su
или sudo
перед sshpass
Таким образом, как я могу изменить путь /update.out
, /update.err
и /update.pid
этот файл от вышеупомянутой команды.?
В первой команде Вы пишете вывод в расположение, к которому Вы имеете доступ для записи, таким образом, все прекрасно там.
Теперь /pra
каталог не существует по умолчанию, таким образом, я предполагаю, что Вы создали его с помощью корневого доступа. Таким образом для записи в него необходимо использовать корневой доступ также. Просто добавьте sudo
к команде как,
sudo sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /pra/log/update.out 2> /pra/log/update.err < /dev/null | echo $! > /pra/log/update.pid &'
, А скорее, чем выполнение этого, я предложил бы, чтобы Вы записали в каталог в $HOME
dir и дали его rwx------
разрешение (т.е. читали/писали/выполняли для Вас и никаких полномочий другим).Thus, Вы не должны будете использовать sudo.