Lost.exe 2023-03-31 23:50 采纳率: 100%
浏览 6
已结题

请教一个有关Linux crontab 的问题。

本人是做设备维护的,对linux不太了解,现想对工控机器Linux系统进行定期清理垃圾文件,在Terminal中使用oper用户编辑 crontab -e ,新建了一个计划任务,并且可以正常按计划执行,可是机器关机重启后 crontab -l 查看计划任务已被清空,这是为什么?
crontab -e建立计划任务后查看 /var/spool/cron/crontabs文件夹修改日期变为当前时间,重启后该文件夹修改日期变回原来18年的时间,由于不知道root密码,所以没有权限打开文件夹,也没有权限把需要运行的脚本放进crond.hourly之类的文件夹,请教下有何解决方法?

img

  • 写回答

2条回答 默认 最新

  • test_boy001 2023-04-01 05:18
    关注

    根据您提供的情况,可能是由于文件系统设置了不允许持久化保存计划任务导致的。

    在Linux中,通常使用crontab命令来管理定时任务,它会将任务写入/var/spool/cron/crontabs目录下对应用户的文件中。如果文件系统设置为只读,那么每次系统重启后都会还原到原始状态,导致之前的任务被清空。

    解决方法:

    使用root用户登录系统,编辑/etc/fstab文件,将文件系统的“ro”(只读)改为“rw”(可读写),重新挂载文件系统。

    如果您没有root权限,则需要联系系统管理员来进行处理。您可以向管理员提供上述问题的描述以及您的需求,以便他们能够为您找到解决方案。

    如果无法更改文件系统设置,您可以将计划任务保存在其他目录下,并编写脚本在系统启动时自动添加计划任务。具体的操作可以参考以下步骤:

    1)将计划任务保存在其他目录下,例如/home/user/crontab.txt。

    2)创建一个启动脚本,例如/home/user/startup.sh,并在其中添加以下内容:

    go
    Copy code

    #!/bin/bash
    crontab /home/user/crontab.txt
    

    3)将启动脚本添加到系统启动项中,使其在每次系统启动时自动运行。

    bash
    Copy code
    您可以编辑/etc/rc.local文件,在其中添加以下内容:

    /bin/bash /home/user/startup.sh &
    

    注意,/etc/rc.local文件在某些Linux系统中已被弃用,您需要根据具体情况进行调整。
    希望以上解决方法能够帮到您。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 创建了问题 3月31日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效