如何通过Shell脚本为指定用户添加Crontab定时任务
解决特定用户Crontab定时任务配置问题
你遇到的问题主要有两个原因:
- Cron表达式格式错误:
*/1****缺少字段间的空格,正确的每分钟执行表达式应该是*/1 * * * * - 命令引号嵌套冲突:
su命令的-c参数使用双引号包裹,内部的双引号未转义,导致bash解析出错
修正后的可行命令
方式1:修正引号嵌套(使用单引号包裹-c参数内容)
su -s /bin/bash -c 'echo "*/1 * * * * /opt/file/test.sh" | crontab -' user
方式2:转义内部双引号
su -s /bin/bash -c "echo \"*/1 * * * * /opt/file/test.sh\" | crontab -" user
方式3:直接使用crontab的-u参数(更简洁)
不需要通过su切换用户,直接用sudo结合crontab -u指定目标用户:
sudo echo "*/1 * * * * /opt/file/test.sh" | sudo crontab -u user -
验证配置是否生效
执行以下命令查看目标用户的crontab列表:
sudo crontab -u user -l
如果能看到刚才添加的定时任务,说明配置成功。
内容的提问来源于stack exchange,提问作者Nilay Singh
相关产品推荐
相关产品推荐

