crontab命令

CronTab定时任务详解
本文详细介绍了CronTab的基本命令及其使用方法,包括编辑、显示、删除等操作。此外,还介绍了如何设置开机启动、任务配置的具体语法,并提供了解决脚本执行问题的实际案例。
(/etc/crontab)
crontab的命令如下:


-e 表示编辑当前的crontab
-l  表示列表显示当前的crontab任务
-r  表示删除当前用户的crontab
-i  表示删除crontab时给予提示信息
注意,user's crontab这个表示是每个用户都有自己的crontab,所以如果需要全局执行,必须定制root用户的crontab,非全局的,就根据各个用户自己的crontab来执行,在执行编辑crontab操作时,我们需要设置编辑工具,否则默认是crontab的编辑,对于习惯vi编辑的用户,我们需要在用户目录下设置.profile配置文件,如root的配置文件.profile,就如下目录:


带.的文件都是隐藏文件,所以需要ls -a才能列出来,vi .profile在文件中加入如下配置:
EDITOR=vi; export EDITOR
表示,当前root用户以vi作为默认编辑器,此时直接使用crontab -e,可以进行编辑任务列表,如下所示:


上面以#号开头的表示是注释说明的信息,红色标记的是任务列表。
对于crontab的任务配置说明;
分钟 小时 日 月 星期 命令
*          *     *   *     *       *
这样就一目了然了,我们红色标记的表示的意义是每天3点钟执行脚本run.sh,并将执行日志自动输出到log.log文件中。
*/1 * * * *    root  /opt/bin/test-cron.sh //表示每隔一分钟执行一次脚本
注:crontab任务是被定制在系统后台运行的cron进程,所以用户书无法查看到cron的进程状态的。设置开机启动cron进程,命令如下:
chkconfig --add crond,把它加入到系统的服务列表中。
当然,crontab命令用多了,会越来越喜欢它的,因为它能简化我们日常的很多工作,特别是数据库备份、检测服务器运行状态等一些经常做的工作,都可以根据你的需求来定制,在合理的时间运行执行合适的工作任务,既不影响服务器的性能,又可以节约平时的工作时间,大大提高功能效率。
crontab中当然是要用绝对路径的,所以,crontab中要执行的脚本也必然要使用绝对路径,原来我们的运行脚本中有一个Java类使用的是相对路径,所以导致脚本没有执行,但日志文件却创建了,所以很快可以定位是脚本执行没有成功,把路径修改成绝对路径,发现执行后,java类把路径当作包名来识别,所以最后就只能在shell脚本前面加上目录切换命令,如cd /root/...的,这样脚本执行就都可以识别到目录了,而且不管在哪儿执行,它都是绝对的路径,可以找到并运行成功。
修改crontab之后,记得执行/etc/init.d/cron restart重启cron服务。。。
### 系统中没有 crontab 命令的原因 - **软件包未安装**:crontab 命令通常由 cron 或 cronie 等软件包提供。若系统未安装这些软件包,就无法使用 crontab 命令。 - **软件包损坏**:在安装过程中出现错误,或者软件包文件被意外损坏,可能导致 crontab 命令无法正常使用。 - **环境变量问题**:即使 crontab 命令已安装,但如果其所在的目录未包含在系统的环境变量 `PATH` 中,系统也无法找到该命令。 - **权限问题**:某些情况下,由于权限设置不当,用户可能没有权限访问 crontab 命令。 ### 解决方法 #### 安装软件包 不同的 Linux 发行版使用不同的包管理器来安装 cron 相关软件包。 - **Debian 或 Ubuntu**:使用 `apt` 包管理器安装 `cron` 软件包。 ```bash sudo apt update sudo apt install cron ``` - **CentOS 或 RHEL**:使用 `yum` 或 `dnf`(CentOS 8 及以上版本)包管理器安装 `cronie` 软件包。 ```bash # CentOS 7 及以下 sudo yum install cronie # CentOS 8 及以上 sudo dnf install cronie ``` - **Arch Linux**:使用 `pacman` 包管理器安装 `cronie` 软件包。 ```bash sudo pacman -S cronie ``` #### 修复软件包 如果软件包损坏,可以尝试重新安装该软件包来修复问题。 - **Debian 或 Ubuntu**: ```bash sudo apt-get --reinstall install cron ``` - **CentOS 或 RHEL**: ```bash # CentOS 7 及以下 sudo yum reinstall cronie # CentOS 8 及以上 sudo dnf reinstall cronie ``` - **Arch Linux**: ```bash sudo pacman -S cronie ``` #### 检查和更新环境变量 可以通过以下命令查看当前的环境变量 `PATH`。 ```bash echo $PATH ``` 如果 crontab 命令所在的目录(通常是 `/usr/bin` 或 `/usr/sbin`)未包含在 `PATH` 中,可以临时添加该目录。 ```bash export PATH=$PATH:/usr/sbin ``` 若要永久添加,需编辑 `~/.bashrc` 或 `/etc/profile` 文件,并在其中添加上述 `export` 命令。 #### 检查和修复权限问题 确保用户对 crontab 命令所在的目录和文件具有足够的权限。可以使用以下命令检查和修改权限。 ```bash sudo chmod +x /usr/bin/crontab ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值