微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux中是否有variables显示上次打开机器的时间?

我想创build一个脚本,知道我的机器已经打开了至less7小时后,它会做一些事情。

这可能吗? 有没有一个系统variables或类似的东西显示我上次打开机器?

如何检查cronjob是否存在与PHP

bash脚本从shell运行,而不是从cron作业运行

每次程序终止时运行的cron中的Bash程序

有没有一个正确的方法来编写一个连续运行的程序

如何确保程序正在运行并在需要时重新启动?

以下命令放置在/etc/rc.local :

echo 'touch /tmp/test' | at -t $(date -d "+7 hours" +%m%d%H%M)

将创建一个将在七个小时内运行touch /tmp/test工作。

为了防止频繁的重新启动并防止添加多个作业,您可以使用专门用于此类作业的队列(例如c队列)。 将-qc添加到at参数列表将把作业放在c队列中。 在添加新作业之前,您可以从c队列中删除所有作业:

for job in $(atq -qc | sed 's/[ t].*//'); do atrm $job; done

你可以解析我认为uptime的输出

正如Pavel和Thkala指出的,这不是一个可靠的解决方案。 看到他们的评论

正常运行时间命令显示系统运行了多久。

为了完成你的任务,你可以做一个脚本,首先sleep 25200 (25200秒= 7小时),然后做一些有用的事情。 让这个脚本在启动时运行,例如将它添加到/etc/rc.local。 这是一个比轮询正常运行时间的命令更好的办法,看看机器是否已经运行了7个小时(这跟一个汽车后座的小孩相比,“我们到了吗?”:-))

等待正常运行时间等于七个小时。

http://linux.die.net/man/1/uptime

我不知道这是你在找什么,但uptime命令会告诉你自上次重新启动以来有多少台计算机正在运行。

$ cut -d ' ' -f 1 </proc/uptime

这将以浮点格式在几秒钟内为您提供当前的系统正常运行时间。

以下内容可以在bash脚本中使用:

if [[ "$(cut -d . -f 1 </proc/uptime)" -gt "$(($HOURS * 3600))" ]]; then ... fi

将以下内容添加到您的crontab中:

@reboot sleep 7h; /path/to/job

无论是/ etc / crontab,/etc/cron.d/,还是您的用户crontab,取决于您是以root还是用户身份运行它 – 不要忘记在“@reboot”之后放置“root”把它放在/ etc / crontab或cron.d中

这样做的好处是,如果您多次重新启动,作业会在关闭时取消,所以如果您在7个小时内重新启动多次,则不会有一堆作业叠加在一起。 当重启系统时,“@reboot”时间规范触发作业一次运行。 “睡7小时” 在运行“/ path / to / job”之前等待7个小时。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐