作者chang0206 (Eric Chang)
看板Linux
标题[问题] @reboot in crontab 的问题
时间Tue Jul 30 16:49:22 2019
最近在测试用PXE+preseed 远端自动安装ubuntu 18.04
本来想在preseed 中加入完成安装後,送出通知信件给管理者
我加入
d-i preseed/late_command \
in-target hostname |mail -s "install complete"
[email protected] ;\
in-target passwd --expire root ;\
这样的语法,下面那段会正常执行
但是上面那行没办法送出邮件,也看不到log 发生什麽事
所以想改用另外的方式
因为pxe 安装完後,client 会重开机
所以我想说在重开机之後,送出信件通知管理者
翻了一下文件
说是可以在crontab 文件中,用@reboot 来指定重开机後的动作
可是我把这个语法加入 /etc/crontab 或者是 /etc/cron.d/after_reboot
都没有作用
但是如果用某个user登入,然後用crontab -e 编辑这个user的crontab
加入一样的语法
那就可以正常被执行
所以看来这个 @reboot 只能放在user个人的crontab 中?
要让系统可以重开机後就执行,需要修改 /etc/rc.local ?
只是在pxe 中,要修改 /etc/rc.local 挺麻烦的说...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.85.234.104 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1564476564.A.D8C.html
1F:推 CMJ0121: 要不要改用 systemd 呢 07/30 17:26
3F:推 hijkxyzuw: 不是所有的 cron 都支援 @reboot 这个关键字 07/30 20:15
4F:→ chang0206: 回楼上,看起来似乎如此 不过没找到文件说明... 07/31 10:12
6F:→ chang0206: 是的,不管是/etc/cron.d /etc/crontab 都一样不能用 07/31 15:32
7F:→ chang0206: @reboot ,但是只要加在user的crontab就可以 07/31 15:32
8F:→ chang0206: 不对,应该说 只要用某帐号登入 然後输入crontab -e 07/31 15:32
9F:→ chang0206: 这样子用@reboot 才有作用..然後真的文件都没说到这块 07/31 15:33
10F:推 Gold740716: user 竟然有用,有点离奇 08/01 08:52
11F:→ chang0206: 黑啊 超神奇 反而是系统的crontab不支援... 08/01 10:11
12F:→ chang0206: BTW 後来还是用硬干rc.local解决.. 08/01 10:12
13F:推 holishing: 一次性应付而言rc.local满直觉的,如果每次重开都要或 08/02 00:44
14F:→ holishing: 有类似的固定需求的话或许可以写写看systemd unit 08/02 00:44
15F:→ chang0206: 没有唷 rc.local每次开机都会被执行,但是我只要执行 08/02 11:23
16F:→ chang0206: 一次,所以要动点手脚 08/02 11:23
17F:→ fourdollars: 要不写个简单的 backend 程式放在某个公开的伺服器? 08/02 17:00
18F:→ fourdollars: 然後去 wget 一下,也可以顺便 POST 什麽资料上去。 08/02 17:00
19F:→ chang0206: 有,本来有想这样做 不过因为rc.local解决了 就暂时不 08/02 17:23
20F:→ chang0206: 改了,不然我觉得这个应该是比较好的方法 08/02 17:23