zoukankan      html  css  js  c++  java
  • linux下定时任务和后台运行

    一:crontab -e

    # 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。

    #分 时 日 月 周

    <==============任务的完整命令行

    * * * * * /home/blue/do/rsyncfile.sh

    默认情况下,任何使用者只要不被列入 /etc/cron.deny 当中,那么他就可以直接下达『 crontab -e』去编辑自己的例行性命令了!整个过程就如同上面提到的,会进入 vi 的编辑画面, 然后以一个工作一行来编辑,编辑完毕之后输入『 :wq』储存后离开 vi 就可以了!

    假如我们需要修改为每5分钟运行数据同步的脚本,那么同样使用 crontab -e 进入编辑:

    */5 * * * * /home/blue/do/rsyncfile.sh

    假如服务器出了问题,有一天的数据没有同步,于是我们就需要补数据了,假设这个补数据的脚本是/home/blue/do/rsyncfile_day.sh,但是白天是高峰期,晚上用户不多,是低峰期,我们补数据会占用大量带宽,尤其是白天,会影响正常业务,所以一般我们可以让补数据任务在凌晨2点开始跑,那么同样使用crontab -e 进入编辑:

    0 2 1 4 * /home/blue/do/rsyncfile_day.sh

    这样,在4月1号凌晨2点0分就会开始启动我们的补数据的脚本了。

    同步数据,在互联网公司是再平常不过的任务了,这里大家可以看到crontab的魅力所在了,只需要写最简单的业务逻辑,把调度交给crond做,就完成了一个可靠性很高的一项任务了,如果要自己去额外写这种调度程序,不知道要花多少精力才能做到可靠稳定。

    crontab的语法

    crontab [-u username] [-l

    -e

    -r]

    选项与参数:

    -u :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;

    -e :编辑 crontab 的工作内容

    -l :查阅 crontab 的工作内容

    -r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

    查询使用者目前的 crontab 内容:

    crontab -l

    */5 * * * * /home/blue/do/rsyncfile.sh

    0 2 1 4 * /home/blue/do/rsyncfile_day.sh

    清空使用者目前的 crontab:

    crontab -r

    crontab -l

    no crontab for blue

    如果你想删除当前用户的某一个crontab任务,那么使用crontab -e进入编辑器,再删除对应的任务。

    crontab的限制

    /etc/cron.allow:将可以使用 crontab 的帐号写入其中,若不在这个文件内的使用者则不可使用crontab;

    /etc/cron.deny:将不可以使用 crontab 的帐号写入其中,若未记录到这个文件当中的使用者,就可以使用crontab 。

    以优先顺序来说, /etc/cron.allow 比 /etc/cron.deny 要优先,而判断上面,这两个文件只选择一个来限制而已,因此,建议你只要保留一个即可, 免得影响自己在配置上面的判断!一般来说,系统默认是保留/etc/cron.deny ,你可以将不想让他运行 crontab 的那个使用者写入 /etc/cron.deny当中,一个帐号一行!

    二、& 后台执行命令

    当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行。

    如:

    30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh&

    在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。

    不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:

    如:

    command >out.file 2>&1 &

    在这个例子中,2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。

  • 相关阅读:
    PowerDesigner快捷键
    Android 的开源电话/通讯/IM聊天项目全集
    Android ContentProvider完整案例
    Android中观察者模式的升入理解
    Android中Socket大文件断点上传
    Storm概念学习系列之Tuple元组(数据载体)
    开始使用storm
    Storm概念学习系列之storm的功能和三大应用
    Storm概念学习系列之storm的特性
    Storm概念学习系列之storm核心组件
  • 原文地址:https://www.cnblogs.com/lzp1103/p/7813560.html
Copyright © 2011-2022 走看看