shell后台定时任务时crontab的用法是怎样的
- 行业动态
- 2023-12-21
- 1
在Linux系统中,crontab是一个非常实用的工具,它可以帮助我们在后台定时执行一些任务,crontab的全称是Cron Table,它是UNIX系统下的一个命令,用于定期执行用户或系统的任务,crontab的用法非常灵活,可以满足各种定时任务的需求,本文将详细介绍crontab的基本用法和高级技巧。
基本用法
1、安装crontab
在大多数Linux发行版中,crontab已经预装好了,如果没有安装,可以使用以下命令进行安装:
对于Debian/Ubuntu系统:
sudo apt-get install cron
对于CentOS/RHEL系统:
sudo yum install cronie
2、查看当前用户的crontab列表
使用以下命令查看当前用户的crontab列表:
crontab -l
如果没有任何输出,说明当前用户没有设置任何定时任务。
3、编辑当前用户的crontab
使用以下命令编辑当前用户的crontab:
crontab -e
这将打开一个文本编辑器,你可以在其中添加、修改或删除定时任务,每个定时任务占一行,每行的格式如下:
* * * * command-to-be-executed
| | | | —-Day of week (0 7) (Sunday is both 0 and 7)
| | | ——Month (1 12)
| | ——–Day of month (1 31)
| ———-Hour (0 23)
————Minute (0 59)
以下是一个每天凌晨1点执行/home/user/backup.sh脚本的定时任务:
0 1 * * * /home/user/backup.sh
4、保存并退出编辑器
在编辑器中完成定时任务的编辑后,保存并退出,如果是第一次编辑,会提示你选择默认的编辑器,选择一个你喜欢的编辑器,然后按照提示操作即可。
高级技巧
1、使用环境变量
在定时任务中,可以使用环境变量来传递参数,以下定时任务会在每天凌晨1点执行/home/user/backup.sh脚本,并将$BACKUP_DIR作为参数传递给脚本:
0 1 * * * /home/user/backup.sh $BACKUP_DIR
在脚本中,可以通过$1、$2等变量来获取传递的参数。
!/bin/bash BACKUP_DIR=$1 ...其他代码...
2、使用分号分隔多个命令
在一行中,可以使用分号(;)分隔多个命令,它们将按顺序依次执行。
0 1 * * * /home/user/backup.sh; /home/user/cleanup.sh > /dev/null 2>&1 &
这个定时任务会在每天凌晨1点执行/home/user/backup.sh脚本,然后执行/home/user/cleanup.sh脚本,并将标准输出和错误输出重定向到/dev/null,最后的&表示将命令放到后台执行。
3、使用特殊字符转义规则
在定时任务中,有些字符具有特殊含义,需要使用反斜杠()进行转义,以下是一些需要转义的特殊字符:
newline:使用`
`表示换行符;
space:使用 表示空格;
tab:使用t表示制表符;
%:使用%表示百分号;
backslash:使用\表示反斜杠。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/356143.html