【发布时间】:2017-05-10 22:00:58
【问题描述】:
我有一个每晚运行的脚本。用户 ID 在 sudoers 中设置以执行这些功能。我不打算禁用“Defaults requiretty”,尤其是在不知道为什么现在突然出现问题的情况下。
这是 sudo 的作用:
sudo lvcreate -- size 19000M –snapshot –name snap_u /dev/mapper/vg_u-lvu
sudo mount /dev/vg_u/snap_u /snapshot
sudo rsync -av --delete --bwlimit=12000 –exclude usr/spoolhold --exclude email --exclude tempfile /snapshot/ /u1/prev/dir
sudo umount /snapshot
sudo lvremove -f /dev/vg_u/snap_u
在过去的几周里,它大部分时间都不起作用。有时当我“手动”运行命令时,它工作正常。当它失败时,我看到这条消息正在填充日志文件:
sudo:抱歉,您必须有一个 tty 才能运行 sudo
当我切换其他一些脚本进行远程备份时,问题就开始了。我在这个脚本中唯一改变的是 cmets。该脚本由使用“nohup”在后台运行的应用程序调用。
在我的测试过程中,当我想立即再次运行它时,我终止了该进程以阻止它在后台运行。从那以后我就遇到了这个问题。所以,我的问题是:
- 此错误是否与“杀死”这些进程有关(也许我杀死了错误的进程)?
- 有什么解决方案的想法吗?
【问题讨论】:
-
这里是有关该问题的更多信息。此脚本中有多个 sudo 命令。第 1 次第 2 次运行没有发生任何事故。 (创建快照和挂载快照)。第三个(rsync)是带来此消息的原因。我检查了 sudoers,发现 rsync 在 NOPASSWD 列表中。更神秘的是,该脚本大约每运行 3 次就会运行一次。