Linux系统如何使用shell脚本定时任务
这期内容当中小编将会给大家带来有关Linux系统如何使用shell脚本定时任务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
定时任务是Linux系统运维人员常用的一种技术手段,使用定时任务可以简化那些繁琐、重复的工作。
我的虚拟机是centos7.0.2
接下来 写一个简单的shell命令:
1.先进入根目录
cd /root
2.使用vi编辑器 可以直接 # vim hello.sh编写第一个shell文件 hello.sh, 注意一定要以.sh结尾
vim hello.sh
3.编写第一个shell文件,#!/bin/bash 是必须要写的,表示要是/bin/bash这个执行脚本的命令执行接下来写的脚本, echo "hello world !!"表示想前端打印一句话,具体看各自需求。
4.通过chmod命令赋予该脚本的执行权限chmod 755 hello.sh,否则没有执行权限,/root/hello.sh表示在全路径下执行该shell脚本
就此一个简单的shell脚本就这样写完了 具体的这里就不讲了。(说白了,shell脚本就相当于一个文件,它专门来干自己独立的任务)
虽然一个简单的shell脚本写完了 但是运行后只能执行一次 对很多应用场景来说还是不够,接下来说一下定时任务
linux应该都有crontab,没有的话可以安装一下:
yum install vixie-cron
yum install crontabs
vixie-cron软件包是cron的主程序; crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
安装完以后开启crontab服务
service crond start
用以下的方法启动、关闭这个cron服务: service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置
查看crontab服务状态:service crond status 手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv 加入开机自动启动: chkconfig –level 35 crond on
也可以用设置开机自动启动crond服务: [root@CentOS ~]# chkconfig crond on
查看各个开机级别的crond服务运行情况 [root@CentOS ~]# chkconfig –list crond crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 可以看到2、3、4、5级别开机会自动启动crond服务 取消开机自动启动crond服务: [root@CentOS ~]# chkconfig crond off
设置需要执行的脚本
新增调度任务可用两种方法: 1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。 2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。 crontab -e配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务 查看调度任务 crontab -l //列出当前的所有调度任务 crontab -l -u jp //列出用户jp的所有调度任务 删除任务调度工作 crontab -r //删除所有任务调度工作 直接编辑 vim /etc/crontab ,默认的文件形式如下:
前四行是有关设置cron任务运行的环境变量。
SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),
PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。
如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。
文件/etc/crontab中每行任务的描述格式如下:
minute hour day month dayofweek command
minute – 从0到59的整数
hour – 从0到23的整数
day – 从1到31的整数 (必须是指定月份的有效日期)
month – 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek – 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command – 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)
root表示以root用户身份来运行
run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本
对于以上各语句,星号()表示所有可用的值。例如在指代month时表示每月执行(需要符合其他限制条件)该命令。
整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4
指定数值由逗号分开。如:3,4,6,8表示这四个指定整数。
符号"/"指定步进设置。"/"表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。
以"#"开头的为注释行,不会被执行。
比如上述图中 执行的是每隔一分钟执行一半hello.sh脚本 上边脚本输出的内容 大家也知道 >> 符号 指定文件获取内容的存放位置 比如访问一个地址 命令 curl http://www.baidu.com
linux系统字符界面 无法显示画面只能把访问的页面编译后的代码原样输出 如:
这样大家看着很乱吧
当然也有-I 参数 静默访问 curl -I http://www.baidu.com
这样只显示一组http状态 但还是很乱 直接把他写进固定的日志文件就方便多了
cat 一下 查看 这样就简单多了
什么是Linux系统
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
上述就是小编为大家分享的Linux系统如何使用shell脚本定时任务了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。