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

请教一个有关Linux crontab 的问题。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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无用