Linux基础--例行工作
1、仅进行一次的工作排程--at
at的工作情况其实是这样的:
1)先找寻/etc/at.allow这个档案,写在这个档案中的使用者才能使用at,没有在这个档案中的使用者则不能使用at(即使没有写在at.deny当中);
2)如果没有/etc/at.allow就寻找/etc/at.deny这个档案,若写在这个at.deny的使用者则不能使用at;
3)如果两个档案都不存在,那么只有root可以使用at这个指令。
[root@linux ~]# at [-m] TIME
参数:
-m:当at的工作完成后,以email的方式通知使用者该工作已完成
TIME:时间格式,这里可以定义出什么时候要进行at这项工作的时间,格式有:
HH:MM ex> 04:00 在今日的HH:MM时刻进行,若该时刻已超过则明天的HH:MM进行此工作
HH:MM YYYY-MM-DD ex> 04:00 2005-12-03 强制规定在某年某月的某一天的特殊时刻进行该工作
HH:MM[am|pm] [Month] [Date] ex> 04pm December 3 也是一样,强制在某年某月某日的某时刻进行
HH:MM[am|pm] + number [minutes|hours|days|weeks] ex> now + 5 minutes ex> 04pm + 3 days 就是说在某个时间点再加几个时间后才进行。
范例一:再过五分钟后,将/root/.bashrc寄给dmtsai这个使用者
[root@linux ~]# at now + 5 minutes
at> /bin/mail dmtsai -s "testing at job" < /root/.bashrc
at> <EOT> <==这里输入 [ctrl] + d 就会出现 <EOF> 的字样!代表结束!
job 8 at 2005-09-07 10:47
范例二:由于机房预计于2005/09/16停电,我想要在2005/09/15 23:00关机?
[root@linux ~]# at 23:00 2005-09-15
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>
job 10 at 2005-09-15 23:00
at还可以在一个工作内输入多个指令呢!万一我下达了at之后,才发现指令输入错误该如何是好?就将他移除!利用atq与atrm。
[root@linux ~]# atq
[root@linux ~]# atrm [jobnumber]
范例一:查询目前主机上面有多少的at工作排程?
[root@linux ~]# atq
10 2005-09-15 23:00 a root
上面说的是在2005/09/15 的 23:00有一项工作,该项工作指令下达者为root,而且,该项工作的工作号码(jobnumber)为10号!
范例二:将上述的第10个工作移除
[root@linux ~]# atrm 10
[root@linux ~]# atq
没有任何信息,表示该工作被移除了。
2、循环执行的例行性命令--crontab
1)使用者的设定:crontab
/etc/cron.allow:将可以使用crontab的账号写入其中,若不在这个档案内的使用者则不可使用crontab;
/etc/cron.deny: 将不可以使用crontab的账号写入其中,若未记录到这个档案当中的使用者,就可以使用crontab。以优先级来说/etc/cron.allow比/etc/cron.deny要优先。
当使用者使用crontab这个指令来建立工作排程之后,该项工作就会被纪录到/var/spool/cron/里面去,而且是以账号来作为判别,另外cron执行的每一项工作都会被纪录到/var/log/cron中,所以如果您的Linux不知道有否被植入木马时, 也可以搜寻一下/var/log/cron这个登录档。
[root@linux ~]# crontab [-u username] [-l|-e|-r]
参数:
-u:只有root才能进行这个任务,亦即帮其它使用者建立/移除crontab;
-e:编辑crontab的工作内容
-l:查阅crontab的工作内容
-r:移除crontab的工作内容
范例一:用dmtsai在每天的12:00发信给自己
[dmtsai@linux ~]$ crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 时 日 月 周 |<==============指令串========================>|
五个时间参数为:
代表意义 分钟 小时 日期 月份 周
数字范围 0-59 0-23 1-31 1-12 0-7
当周为0或7时,都代表星期天,另外,还有一些辅助的字符,大概有底下这些:
* 代表任何时刻都接受的意思,举例来说,上表的范例一那个日月周都是*, 就代表着不论何月、何日的礼拜几的12:00都执行后续指令
, 代表分隔时段的意思,举例来说,如果要下达的工作是3:00与6:00时,就会是0 3,6 * * * command还是有五栏,不过第二栏是3,6,代表3与6都适用
- 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行工作:20 8-12 * * * command 仔细看到第二栏变成8-12代表8,9,10,11,12都适用的意思
/n 那个n代表数字,亦即是每隔n单位间隔的意思,例如每五分钟进行一次,则:*/5 * * * * command
如何查询使用者目前的crontab内容呢? 我们可以这样来看看:
[dmtsai@linux ~]$ crontab -l
59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
*/5 * * * * /home/dmtsai/test.sh
30 16 * * 5 mail friend@his.server.name < /home/dmtsai/friend.txt
注意,若仅想要移除一项工作而已的话,必须要用crontab -e去编辑,如果想要全部的工作都移除,才使用crontab -r。
[dmtsai@linux ~]$ crontab -r
[dmtsai@linux ~]$ crontab -l
no crontab for dmtsai
2)系统的设定:/etc/crontab
在Linux下的crontab会自动的帮我们每分钟重新读取一次/etc/crontab的例行工作事项,但是某些原因或者是其它的Unix 系统中,由于crontab是读到内存当中的,所以在你修改完/etc/crontab之后,可能并不会马上执行,这个时候请重新启动crond 这个服务/etc/init.d/crond restart
[root@linux ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly <==每小时
02 4 * * * root run-parts /etc/cron.daily <==每天
22 4 * * 0 root run-parts /etc/cron.weekly <==每周日
42 4 1 * * root run-parts /etc/cron.monthly <==每个月 1 号
分 时 日 月 周 执行者身份 指令串
/etc/crontab这个档案里面支持两种下达指令的方式,一种是直接下达指令,一种则是以目录来规划,如:
a、指令型态
01 * * * * dmtsai mail -s "testing" kiki < /home/dmtsai/test.txt
以dmtsai这个使用者的身份,在每小时执行一次mail指令。
b、目录规划
*/5 * * * * root run-parts /root/runcron
建立一个/root/runcron的目录,将要每隔五分钟执行的可执行档都写到该目录下,可以让系统每五分钟执行一次该目录下的所有可执行档。
3)资源分配不均的问题
如果每个流程都在同一个时间启动的话,那么在某个时段时,系统会变的相当的繁忙, 所以这个时候就必须要分别设定,可以这样做:
[root@linux ~]# vi /etc/crontab
1,6,11,16,21,26,31,36,41,46,51,56 * * * * root CMD1
2,7,12,17,22,27,32,37,42,47,52,57 * * * * root CMD2
3,8,13,18,23,28,33,38,43,48,53,58 * * * * root CMD3
4,9,14,19,24,29,34,39,44,49,54,59 * * * * root CMD4
4)取消不要的输出项目
当有一个排程一直出错(如DNS的侦测系统当中若DNS上层主机挂掉,那么你就会一直收到错误讯息)怎么办?直接以命令重导向将输出的结果输出到/dev/null 这个垃圾桶当中。
Linux基础--例行工作的更多相关文章
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- 大数据每日干货第四天(linux基础之一目录结构与常用命令)
为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...
- Linux课程实践一:Linux基础实践(SSH)
一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...
- 还是不想改报告,伊阿忆啊哟-Linux基础继续
hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...
- 原来今天是感恩节-Linux基础继续&MySQL和PHP
hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...
- 买错的电影票,含着泪也得看-LAMP搭建&Linux基础
hi 没说过,上周五室友过生请客,在龙湖里吃嗨了喝爽了,回去的路上侃侃而谈.说好的这周一起去看年内最后的大片,火星救援的,谁知道老子眼神不好,买错了电影的时间...把周六的约定提前到了今儿个下午,ma ...
- Linux基础3(文件权限)
文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...
- Linux课程实践一:Linux基础实践(基础操作)
一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...
- 实践一:Linux基础实践
一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...
随机推荐
- Objective-C面向对象(三)
1.类的继承 OC的继承是单继承,每个子类只有一个直接父类 1.1 继承的特点 OC继承的语法 @interface SubClass :SuperClass { //成员变量定义 } //方法定义部 ...
- 四则运算程序扩展:将程序改为java语言,并允许用户输入,对输入结果进行验证
题目 每个同学选一个方向,把程序扩展一下:1.让程序能接受用户输入答案,并判定对错.最后给出总共对/错 的数量.2.把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目.3.把程序变成一个Wi ...
- ScrollView图片分页显示-简单
用到的控件: 1>UIScrollView:宽度和图片的宽度一样,因为分页的代码就一句 // 设置分页,这个分页的原理实际上是按照ScrollView的宽进行分页的,这里的图片的宽由于和Scro ...
- SQL SERVER中查询无主键的SQL
--生成表 IF EXISTS ( SELECT name FROM sysobjects WHERE xtype = 'u' ...
- Keystore概念,Keytool工具使用
几个概念 keystore是一个密码保护的文件,用来存储密钥和证书(也就是说,keystore中存储的有两类型entries):这个文件(默认的)位于你的home目录,也就是你登录到操作系统的用户名的 ...
- 【Simplify Path】cpp
题目: Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/&quo ...
- Netsharp快速入门(之15) 销售管理(报表B 销售季度表)
作者:秋时 杨昶 转载须说明出处 4.6.2 销售季度表(交叉表) 1.1.1.1 交叉表带数据源和不带数据源区别 带数据源的可以自定义数据源,可以从实体,也可以从Sql脚本得到数据源,并能自定 ...
- 【BZOJ】【3280】小R的烦恼
网络流/费用流 和软件开发那题基本相同,只是多加了一个“雇佣研究生”的限制:不同价格的研究生有不同的数量…… 那么只需加一个附加源点,对每一种研究生连边 S->ss 容量为l[i],费用为p[i ...
- Codeforces Round #204 (Div. 2)->D. Jeff and Furik
D. Jeff and Furik time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- 几个Google中国的访问IP
前面几个IP的访问速度比较快. 74.125.31.106 173.194.45.20 173.194.45.19 173.194.45.18 173.194.45.17 173.194.45.16 ...