700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Crontab 定时任务配置;开机自动执行任务 ;crontab定时任务的关闭;2>1解释

Crontab 定时任务配置;开机自动执行任务 ;crontab定时任务的关闭;2>1解释

时间:2023-06-22 07:40:44

相关推荐

Crontab 定时任务配置;开机自动执行任务 ;crontab定时任务的关闭;2>1解释

Crontab定时任务配置

 最近用flask 写一个小工具,需要端口一直可以稳定的支持访问,奈何环境用的人太多,老有人误删除进程,于是想用crontab 实现一个守护进程,可以定时检测需要的进程是否存在,不存在重新启动flask.app,保证前台随时可以访问,找了些资料,当笔记整理一下……

一、Crontab的基本用法

1. CRONTAB概念/介绍

 Crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

 cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。

crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序

[root@localhost cron]# more /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly

2. 每个用户都会生成一个自动生成一个自己的crontab文件,一般位于/var/spool/cron目录下

[root@localhost cron]# cd /var/spool/cron[root@localhost cron]# lsoracle root

3. cron.deny 与 cron.allow文件

/etc/cron.deny 表示不能使用crontab 命令的用户/etc/cron.allow 表示能使用crontab的用户。默认情况下,cron.allow文件不存在。如果两个文件同时存在,那么/etc/cron.allow 优先。如果两个文件都不存在,那么只有超级用户可以安排作业。

4. 一般情况下 contab 的格式

如下所示,一般crontab文件里面的定时任务格式如下所示:

59 23 * * * /home/scripts/alert_log_archive.sh >/dev/null 2>&1"crontab 文件中每个条目中各个域的意义和格式:第一列 分钟: 1——59第二列 小时: 1——23(0表示子夜)第三列 日 : 1——31第四列 月 : 1——12第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)第六列 要运行的命令"# 常用示例* */8 * * * command # 每隔8小时执行一次命令5 * * * * Command # 每小时的第5分钟执行一次命令30 18 * * * Command # 指定每天下午的 6:30 执行一次命令 30 7 8 * * Command # 指定每月8号的7:30分执行一次命令 30 5 8 6 * Command # 指定每年的6月8日5:30执行一次命令 30 6 * * 0 Command # 指定每星期日的6:30执行一次命令

二、CRONTAB语法及应用

1. 查看当前用户的定时任务

[oracle@localhost ~]$ crontab -l* 8 * * * /home/oracle/test.sh >/dev/null 2>&1

2. 编辑当前用户的定时任务

可以在编辑状态修改、删除、新增一些定时任务。注释一般用#

[oracle@localhost ~]$ crontab -e

3. 删除当前用户的定时任务

[root@localhost ~] crontab -r[root@localhost ~] crontab -l# root用户可以通过添加-u [user]字段删除其他用户的定时任务# >>> no crontab for root

【PS】关于自动任务末尾 >/dev/null 2>&1 的解释:

0表示键盘输入1表示标准输出2表示错误输出.1,2将test.sh 命令输出重定向到log.txt, 即输出内容不打印到屏幕上,而是输出到log.txt文件中。如果你需要追加而不是覆盖,可以用 >>代替>2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件log.txt。&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。

* * * * * /home/oracle/test.sh >/home/oracle/log.txt &* * * * * /home/oracle/test.sh 1>/home/oracle/log.txt & # 将标准输出重定向到log.txt中* * * * * /home/oracle/test.sh 2>/home/oracle/log.txt & # 将错误输出重定向到log.txt中* * * * * /home/oracle/test.sh 2>/home/oracle/log.txt 2>&1 & # 将错误输出重定向到标准输出。 然后将标准输入重定向到文件log.txt

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。