linux自启动及定时任务的调试技巧

在给linux设一些配置的时候,总是会没有安全感。尤其是添加自启动任务和定时任务的时候。下面分享一下我的经验和体会。

定时任务

设置定时任务,使用linux中的crontab命令进入设置。这个相信很多人也会经常用,但加了一条定时任务后,怎么验证它是否能正常工作呢?有人说,事先执行一下不就行了,执行ok,放里面肯定ok。告诉你,不肯定。我就经常遇到这样的“不肯定”。crontab的使用方法和注意项不在本文讲解和讨论。这里讲我一般使用的两点:

  1. 启用crontab日志。

    如何启用?见我之前的一篇文章:Ubuntu开启cron日志

  2. 对执行的命令输出进行重定向。

    就是在命令后面加>/the/path/log/output 2>&1

一般用以上的一条就可以解决问题了。也可以两个一起参考着来。我一般用第2种,因为crontab的所有命令的各种类型的日志都输出到了/var/log/cron.log里面了。看起来有点费劲。

自启动任务

我用ubuntu,其它linux发行版类似。在rc.local中添加我要启动运行的脚本或命令。那么,加了一条之后怎么验证呢?当然,你可以重启试一下,但如果失败了,第一,你不知道why; 第二,你改了还得重启。要知道linux重启是一件很影响工作也是件很low的事情,因为你一定不愿意因为重启,把开了一堆的窗口和文件关掉然后回头又去一个个打开。所以,宝哥这边推荐的一个办法是,你先sudo /etc/rc.local执行一下看看有没有报错或者什么别的乱七八糟的东西输出来。然后就方便你分析问题了。你没有想到rc.local还可以直接执行吧,呵呵。

当然,rc.local里面加的每条命令你也是可以用上上面定时任务中的第2点技巧来调试和跟踪问题来的。

注意:这里为什么要加个sudo呢,因为系统启动的时候执行rc.local是以系统身份来执行的,那不得要sudo嘛。这才叫模拟“真实”环境嘛。

show me the 栗子:这个还真方便show一下,请移步到这篇文章,它讲的就是一个很好的栗子:ubuntu启动建立ssh连接失败