该错误发生在crontab的sudo命令

当我执行shell时,却是由cron执行“sudo:对不起,你必须有一个tty来运行sudo”出现。 但是这怎么处理?

你不需要sudo来像cron中的其他用户一样运行程序(至less在系统crontab中)。

只需将用户字段从根目录更改为目标用户。

如果你真的想su在cron中工作。

你也可以简单地重新configurationsudo来不需要tty:

编辑(以root身份)文件

/etc/sudoers 

并注释说:

 Defaults requiretty 

您可以将NOPASSWD:添加到sudoers文件中的相关条目中,以停止要求input密码,我认为这将对您有所帮助。

你最好先从所需用户的crontab中运行它,并避免sudo的需要。

编辑fred的crontab:

 su - fred crontab -e