我想安排一个命令在
Linux机箱重启后运行.我知道如何执行此操作,以便使用@reboot crontab条目执行命令
consistently runs after every reboot,但是我只希望命令运行一次.运行后,应将其从要运行的命令队列中删除.我本质上是在Windows世界中寻找与
RunOnce相当的Linux.
如果重要:
$uname -a Linux devBox 2.6.27.19-5-default #1 SMP 2009-02-28 04:40:21 +0100 x86_64 x86_64 x86_64 GNU/Linux $bash --version GNU bash,version 3.2.48(1)-release (x86_64-suse-linux-gnu) Copyright (C) 2007 Free Software Foundation,Inc. $cat /etc/SuSE-release SUSE Linux Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 0
有一种简单的,可编写脚本的方法吗?
解决方法
在crontab中创建一个@reboot条目以运行名为/usr/local / bin / runonce的脚本.
使用mkdir -p创建名为/etc/local/runonce.d/ran的目录结构.
创建脚本/usr/local / bin / runonce,如下所示:
#!/bin/sh for file in /etc/local/runonce.d/* do if [ ! -f "$file" ] then continue fi "$file" mv "$file" "/etc/local/runonce.d/ran/$file.$(date +%Y%m%dT%H%M%S)" logger -t runonce -p local3.info "$file" done
现在将您希望在下次重启时运行的任何脚本(仅限一次)放在目录/etc/local/runonce.d中,然后chown和chmod x适当地运行.一旦运行,您将发现它已移至ran子目录,并将日期和时间附加到其名称.系统日志中还会有一个条目.