### Ubuntu 使用 Crontab 定时任务 Crontab 是 Linux 系统中一个非常重要的工具,用于在固定时间执行指定的任务。对于 Ubuntu 用户来说,掌握 crontab 的使用方法可以大大提高系统的自动化管理水平。 #### 一、Crontab 基础使用 1. **编辑定时任务** - 使用命令 `crontab -e` 来创建或编辑用户的 crontab 文件。 ```bash ~# crontab -e ``` - 编辑器会打开一个空白文件,用于设置定时任务的格式如下: ``` # 分 时 日 月 周 命令 # * * * * * command ``` - 例如,如果希望每天凌晨三点执行 `/home/meng/hello.sh` 脚本,可以设置为: ``` 3 * * * * /home/meng/hello.sh ``` 这表示每隔一个小时的 03 分钟执行 `/home/meng/hello.sh` 脚本。 2. **保存与退出** - 在完成编辑后,使用 `Ctrl + X` 退出编辑模式。 - 按提示保存文件(通常直接按 `Y` 键),并退出编辑器。 3. **重启 cron 服务** - 修改完 crontab 配置后,需要重启 cron 服务才能使修改生效。 ```bash ~# /etc/init.d/cron restart ``` #### 二、高级用法 1. **系统级 crontab 配置文件** - Ubuntu 系统级别的 crontab 配置文件位于 `/etc/crontab`,其中包含了系统自动运行的一些任务。 - 示例配置: ```bash # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # 分 时 日 月 周 用户 命令 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) ``` - 上述示例中的 `run-parts` 命令用于执行指定目录下的所有脚本文件。 2. **用户级 crontab 配置** - 用户级别的 crontab 文件通常存储在 `/var/spool/cron/crontabs` 目录下。 - 每个用户的 crontab 文件都对应该用户的定时任务。 3. **运行权限问题** - 如果希望某个脚本被 crontab 执行,确保该脚本具有可执行权限,并且用户有权限执行它。 ```bash chmod +x /home/meng/hello.sh ``` - 也可以设置脚本由特定用户执行: ```bash 3 * * * * root /home/meng/hello.sh ``` #### 三、常见问题及解决方案 1. **定时任务不执行** - 检查脚本路径是否正确。 - 检查脚本是否有执行权限。 - 确认 crond 服务是否正常运行。 ```bash ~# systemctl status cron ``` 2. **查看定时任务列表** - 查看当前用户的定时任务列表: ```bash ~# crontab -l ``` 3. **删除定时任务** - 删除当前用户的定时任务: ```bash ~# crontab -r ``` #### 四、进阶技巧 1. **使用环境变量** - 可以在 crontab 文件中设置环境变量,使得定时任务能访问到这些变量。 ```bash #!/bin/bash MY_VAR="example" * * * * * echo $MY_VAR > /tmp/test.txt ``` 2. **脚本参数传递** - 如果需要向脚本传递参数,可以直接在命令后面添加: ```bash 3 * * * * /home/meng/hello.sh arg1 arg2 ``` 3. **运行多个脚本** - 如果希望在同一时间执行多个脚本,可以使用分号或 && 连接: ```bash 3 * * * * /home/meng/script1.sh; /home/meng/script2.sh ``` 通过上述介绍,我们可以看到 crontab 在 Ubuntu 中的强大功能和灵活性,它不仅能够帮助我们自动化日常管理任务,还提供了丰富的配置选项以适应不同的需求。掌握 crontab 的使用方法对于提高系统的自动化管理水平至关重要。


















1. 使用crontab -e命令
这个命令的使用比较简单。直接输入
~# crontab -e
就会打开一个编辑窗口,第一行会有内容格式的提示:
# m h dom mon dow command
具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command),*表示任意时间。例如:
3 * * * * /home/meng/hello.sh
就是:每小时的03时执行/home/meng/下的hello.sh脚本。
在保存之后,根据屏幕下面的提示输入Ctrl+X退出,此时会提示是否保存,输入Y;提示输入文件名,并且有一个临时的文件名,由于只是测试,直接回车保存。
注意:在完成编辑以后,要重新启动cron进程:
~# /etc/init.d/cron restart
观察运行结果,会发现hello.sh会每隔一小时,在03分时被执行一次。
在使用这个命令时,最大的担心就是在系统重启以后是否还能顺利执行呢?我重启系统以后发现一切正常,于是打消了这个顾虑。但是,仍然有一个问题,一般情况下,服务器都是在重启后处于登录状态下,并没有用户登入。那么如果我在执行crontab -e命令时,不是使用root账户,那么在系统重启之后是否还会顺利执行呢?
2. 编辑crontab文件
crontab位于/ect/文件夹,在http://wiki.ubuntu.org.cn/CronHowto上有关于它的详细介绍,但是我看的不是太懂。
打开crontab文件,如果没有编辑过可以看到如下类似的内容:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command


- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 机房和综合布线方案.docx
- 品德道德与法治八上《网络上的人际交往》PPT公开课教案教学设计课件测试卷练习卷课时同步训练练习公开课.ppt
- 计算机认知实习实验报告.docx
- 2010湖南省计算机等级考试试题二级C试题考试答题技巧.txt
- JFinal-PHP资源
- 啤酒网络营销推广策划书与喜迎国庆晚会规划方案汇编.doc
- 物资管理系统数据库设计说明书.doc
- lunisolar-JavaScript资源
- 计算机体系结构名词解释大全.docx
- 基于约束的模糊概念格构造算法研究.doc
- 市场网络服务协议书.docx
- 微软模拟飞行10攻略基本操作指南.pdf
- 项目管理文档规格表.docx
- 2023年计算机考试Excel操作题原题及操作步骤.doc
- 信号处理领域中经验模态分解(EMD)的Python实现及其周期性分析与单样本t检验的应用 (07月25日)
- 中国水利水电第五工程局尾工项目管理办法规定.doc


