Linux下怎么建立任务计划,shell文件是做啥的?以啥为后缀,前两者之间有啥关系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下怎么建立任务计划,shell文件是做啥的?以啥为后缀,前两者之间有啥关系相关的知识,希望对你有一定的参考价值。

如题

Linux的计划任务,是通过一个系统命令去实现的,crontab命令。具体参数你上网查。不能一切都靠问人。shell文件就类似windows里面的bat或者cmd批处理文件。就是很多命令的集合。以文本方式编写。后缀一般是.sh。既然计划任务要通过命令实现,那么把这个命令写到shell文件里面然后执行就可以了,没有必然联系,可以整合运行而已。就类似windows里面的shutdown命令,写成bat文件后,双击就关机一样。直接命令行也是可以的。 参考技术A linux官方网站 www.kernel.org绝大多数基于Linux内核的的操作系统使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正因为如此,GNU计划的开创者理查德·马修·斯托曼博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。除了一部分专家之外,大多数人都不自己选择每一样组件或自行设置,而是直接使用Linux套件。1983年,理察·马修·斯托曼(Richard Stallman)创立了GNU计划(GNU Project)。这个计划有一个目标是为了发展一个完全免费自由的 Unix-like 操作系统。自1990年代发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的元件,像是——函式库(libraries)、编译器(compilers)、侦错工具(debuggers)、文字编辑器(text editors)、网页服务器(web server),以及一个Unix的使用者接口(Unix shell)——除了执行核心(kernel)仍然付阙外。1990年,GNU计划开始在马赫微核(Mach microkernel)的架构之上开发系统核心,也就是所谓的GNU Hurd,但是这个基于Mach的设计异常复杂,发展进度则相对缓慢。Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途,同时它们都尽可能被编写得更好。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)(当今世界最著名的电脑程序员、黑客)在赫尔辛基大学上学时出于个人爱好而编写的,当时他并不满意Minix这个教学用的操作系统。最初的设想中,Linux 是一种类似Minix这样的一种操作系统。Linux的第一个版本在1991年9月被大学FTP server管理员Ari Lemmke发布在Internet上,最初Torvalds 称这个核心的名称为 "Freax" ,意思是自由( "free") 和奇异( "freak") 的结合字,并且附上了"X"这个常用的字母,以配合所谓的 Unix-like 的系统。但是FTP server管理员嫌原来的命名“Freax”的名称不好听,把核心的称呼改成“Linux”,当时仅有10000行代码,仍必须执行于Minix操作系统之上,并且必须使用硬盘开机;随后在10月份第二个版本(0.02版)就发布了,同时这位芬兰赫尔辛基的大学生在comp.os.minix上发布一则信息:Hello everybody out there using minix-I'm doing a (free) operation system (just a hobby,won't be big and professional like gnu) for 386(486) AT clones.

linux任务计划

 

任务计划:特定时间备份数据,重启服务,shell脚本,单独的命令等等。

任务计划配置文件:cat /etc/crontab

 

[[email protected] ~]# cat /etc/crontab 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

 

 

shell脚本,PATH环境变量,MAILTO发送邮件给谁

时间:

分钟,小时,月份天数,月份,星期,最后是需要执行的命令。

 

crontab  -e 需要执行的任务计划。

每天凌晨3点执行的脚本

  0  3 * * * /bin/bash       /usr/local/sbin/123.sh  >>  /tmp/123.log 2>>/tmp/123.log

 

1到10号的3点 双月能被2整除的月份,星期周2和周5,

0 3 1-10 */2   2,5  /bin/bash     /usr/local/sbin/123.sh>> /tmp/123.log  2>>/tmp/123.log

 

 

要用绝对路径,例如iptables 可以写成绝对路径或者加入到PATH里面

/usr/sbin/iptables

 

 

启动服务:

systemctl start crond.service

 

查看是否启动:

ps aux |grep

或者:

Systemctl status crond

 

 

 

crontab -u 、-e 、-l 、-r

 

格式: 分 时 日 月 周 user command

文件 /var/spool/cron/username

 

分范围0-59,时范围0-23 ,日范围0-31,月范围0-12,周1-6

可用格式1-5表示一个范围1到5

可用格式1,2,3表示1或者2或者3

可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时要保证服务是启动状态

 

 

 

以上是关于Linux下怎么建立任务计划,shell文件是做啥的?以啥为后缀,前两者之间有啥关系的主要内容,如果未能解决你的问题,请参考以下文章

Linux/Unix里,ln -s这个命令是做啥的?我是小白,谢谢你。

linux 下的 coreutils是做啥用的

谁知道Windows里任务管理器中各项后台进程都各是做啥的?

ubuntu里的/usr/lib/x86_64-linux-gnu这个文件夹是做啥的

谁能简单的给我解释下ERP的意思,它主要是做啥的

Microsoft Office Project是做啥的软件?