我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • git

  • composer

  • linux

    • Linux
    • ssh
    • rsync上传本地文件到服务器
    • windows上使用multipass挂载本地文件
    • curl命令使用
    • 查询系统版本及硬件信息的
    • 操作linux上用户
    • crontab使用
      • 1. cron 服务管理
        • 1.1 错误处理
        • 1.2 确认 cron 是否安装
        • 1.3 安装 cron
        • 1.4 启动和启用 cron 服务
        • 1.5 检查服务状态
        • 1.6 验证 cron 功能
      • 2. crontab 的基本用法
        • 2.1 查看当前用户的 crontab
        • 2.2 编辑 crontab 文件
        • 2.3 删除当前用户的 crontab
        • 2.4 使用指定的 crontab 文件
        • 2.5 crontab 的格式
        • 2.6 示例 crontab 任务
        • 2.7 检查 cron 服务状态
      • 3. 删除定时任务
        • 3.1 删除用户的 crontab 任务
        • 3.2 删除其他用户的 crontab 任务
      • 4. 实现每 5 秒执行的方案
        • 4.1 创建 Shell 脚本
        • 4.2 给脚本赋予执行权限
        • 4.3 添加到 crontab
        • 4.4 运行脚本
        • 4.5 注意事项
        • 4.6添加以下行以实现每分钟的第 0 秒和第 30 秒执行命令:
    • systemctl使用
    • journalctl使用
    • ls查看文件及排序
    • 查询命令行日志记录
    • less详细使用
    • Vim使用案例
    • top的基本使用
  • nginx

  • docker

  • vpn

  • frp

  • 脚本

  • 硬件

  • 运维
  • linux
窝窝侠
2024-11-18

crontab使用

=


# Linux 中的 cron 和 crontab 管理指南

# 1. cron 服务管理

# 1.1 错误处理

如果您在管理 cron 服务时遇到 “Unit cron.service could not be found” 错误,可能是因为系统未安装 cron 服务或服务名称不同。

# 1.2 确认 cron 是否安装

  • Debian/Ubuntu 系统:

    dpkg -l | grep cron
    
    1
  • Red Hat/CentOS 系统:

    rpm -qa | grep cron
    
    1

结果分析:

  • 如果返回结果,表示 cron 已安装。
  • 如果没有返回结果,则需要安装 cron。

# 1.3 安装 cron

  • Debian/Ubuntu 系统:

    sudo apt update
    sudo apt install cron
    
    1
    2
  • Red Hat/CentOS 系统:

    sudo yum install cronie
    
    1

    或在较新的版本中:

    sudo dnf install cronie
    
    1

# 1.4 启动和启用 cron 服务

安装完成后,启动 cron 服务并使其在系统启动时自动运行:

  • Debian/Ubuntu:

    sudo systemctl start cron.service
    sudo systemctl enable cron.service
    
    1
    2
  • Red Hat/CentOS:

    sudo systemctl start crond.service
    sudo systemctl enable crond.service
    
    1
    2

# 1.5 检查服务状态

使用以下命令检查 cron 服务的状态:

  • Debian/Ubuntu:

    sudo systemctl status cron.service
    
    1
  • Red Hat/CentOS:

    sudo systemctl status crond.service
    
    1

# 1.6 验证 cron 功能

创建一个简单的 cron 任务进行验证:

  1. 打开 crontab 编辑器:

    crontab -e
    
    1
  2. 添加任务:

    * * * * * echo "Cron is working" >> /tmp/cron_test.log
    
    1
  3. 保存并退出,检查 /tmp/cron_test.log 文件,确认任务是否按预期运行。


# 2. crontab 的基本用法

# 2.1 查看当前用户的 crontab

crontab -l
1

# 2.2 编辑 crontab 文件

crontab -e
1

# 2.3 删除当前用户的 crontab

crontab -r
1
  • 确认删除:
    crontab -ri
    
    1

# 2.4 使用指定的 crontab 文件

crontab filename
1

(将 filename 替换为包含 crontab 配置的文件名。)

# 2.5 crontab 的格式

# ┌───────────── 分钟 (0 - 59)
# │ ┌───────────── 小时 (0 - 23)
# │ │ ┌───────────── 日期 (1 - 31)
# │ │ │ ┌───────────── 月 (1 - 12)
# │ │ │ │ ┌───────────── 星期 (0 - 7) (星期天为0或7)
# │ │ │ │ │
# * * * * * command_to_execute
1
2
3
4
5
6
7

# 2.6 示例 crontab 任务

  • 每天凌晨 2 点执行:

    0 2 * * * /path/to/script.sh
    
    1
  • 每小时执行:

    0 * * * * /path/to/another_script.sh
    
    1
  • 每周一的中午 12 点发送备份:

    0 12 * * 1 /path/to/backup_script.sh
    
    1

# 2.7 检查 cron 服务状态

sudo systemctl status cron
1

# 3. 删除定时任务

# 3.1 删除用户的 crontab 任务

# 3.1.1 编辑用户的 crontab

  1. 打开 crontab 编辑器:
    crontab -e
    
    1
  2. 删除特定任务:在编辑器中找到并删除该行。
  3. 保存并退出:
    • 在 vi 编辑器中,输入 :wq。
    • 在 nano 编辑器中,按 Ctrl + O 然后 Ctrl + X。

# 3.1.2 删除整个用户的 crontab

crontab -r
1

# 3.2 删除其他用户的 crontab 任务

要删除其他用户的 crontab,需使用管理员权限。

# 3.2.1 编辑其他用户的 crontab

sudo crontab -u username -e
1

(将 username 替换为目标用户名。)

# 3.2.2 删除整个其他用户的 crontab

sudo crontab -u username -r
1

# 4. 实现每 5 秒执行的方案

由于 crontab 不能直接设置每 5 秒执行的任务,您可以通过以下方法间接实现:

# 4.1 创建 Shell 脚本

创建一个名为 run_every_5s.sh 的 Shell 脚本,内容如下:

#!/bin/bash
# run_every_5s.sh

while true; do
    # 在这里添加您要执行的命令
    command_to_execute
    sleep 5
done
1
2
3
4
5
6
7
8

# 4.2 给脚本赋予执行权限

chmod +x /path/to/run_every_5s.sh
1

# 4.3 添加到 crontab

打开 crontab 编辑器:

crontab -e
1

在 crontab 文件中添加以下行,以每分钟启动一次该脚本:

* * * * * /path/to/run_every_5s.sh
1

# 4.4 运行脚本

为了确保脚本在后台运行,可以使用 nohup:

nohup /path/to/run_every_5s.sh &
1

# 4.5 注意事项

  • 控制脚本的运行:确保能够手动停止脚本或使用某种控制机制。
  • 资源使用:监控资源使用,避免占用过多 CPU 或内存。

# 4.6添加以下行以实现每分钟的第 0 秒和第 30 秒执行命令:

* * * * * command_to_execute  # 在每分钟的第 0 秒执行
* * * * * (sleep 30; command_to_execute)  # 在每分钟的第 30 秒执行
1
2
在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
操作linux上用户
systemctl使用

← 操作linux上用户 systemctl使用→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×