乐趣区

ubuntu-crontab定时任务

cron 该命令默认安装并启动

准备工作:

- ubuntu 下 crontab 的服务程序是 cron,并且默认 cron 服务的 log 是没有的,我们必须手动开启
- 命令:sudo vim /etc/rsyslog.d/50-default.conf
- 找到 cron.* 那一行把注释去掉,/var/log/cron.log
- 重启 cron 服务 sudo service cron restart
每次增加新的任务之后需要重启服务
  • 命令如下:

    • service cron start / 启动服务 /
    • service cron stop / 关闭服务 /
    • service cron restart / 重启服务 /
    • service cron reload / 重新载入配置 /
  • 查看 cron 进程

    • pgrep cron

      • 返回进程 id
  • crontab -u / 设定某个用户的 cron 服务 /
  • crontab -l / 列出某个用户 cron 服务的详细内容 /
  • crontab -r / 删除某个用户的 cron 服务 /
  • crontab -e / 编辑某个用户的 cron 服务 /

    • 参数含义
    • l 显示用户的 Crontab 文件的内容 示例: crontabl –l
    • i 删除用户的 Crontab 文件前给提示 示例: crontabl -ri
    • r 从 Crontab 目录中删除用户的 Crontab 文件 示例: crontabl -r
    • e 编辑用户的 Crontab 文件 示例: crontabl -e
  • /etc/crontab 文件语法如下:

    Minute  Hour  Day  Month  Dayofweek   user   command
    
    */1      *     *    *       *        ubuntu   cd /home/ubuntu && sh test.sh  每分钟启动一次
    
    *  0    * * *   ubuntu  cd /home/ubuntu && sh everyday.sh
- Minute  Hour  Day  Month  Dayofweek  command
- Minute:分钟(0-59),表示每个小时的第几分钟执行该任务
- Hour:小时(1-23),表示每天的第几个小时执行该任务
- Day:日期(1-31),表示每月的第几天执行该任务
- Month:月份(1-12),表示每年的第几个月执行该任务
- DayOfWeek:星期(0-6,0 代表星期天),表示每周的第几天执行该任务
- Command:指定要执行的命令(如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径)-“*”, 代表所有的取值范围内的数字;-“/”, 代表”每”(“*/5”,表示每 5 个单位);-“-”, 代表从某个数字到某个数字(“1-4”,表示 1 - 4 个单位);-“,”, 分开几个离散的数字;Tip:
 shell 脚本中含有 source 命令运行时提示 source: not found
 如果:ls -l /bin/sh 后显示 /bin/sh -> dash 
    解决方案:命令行执行:dpkg-reconfigure dash(需要 root 权限)在界面中选择 no 
    再运行 ls -l /bin/sh 后显示 /bin/sh -> bash
    
退出移动版