我已经编写了一个bash脚本,它在后台运行,在此脚本中,我使用了以下命令:
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
默认情况下该目录不存在,因此我假设您已使用root用户访问权限创建了该目录。因此,要写它,您还必须使用root用户访问权限。只需添加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------
权限(例如,对您具有读/写/执行权限,而对其他人则没有权限)。因此,您不必使用sudo.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句