分享
 
 
 

Linux例行性命令的建立

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

什么是例行性命令?

每个人或多或少都有一些约会或者是工作,有的工作是例行性的,例如每年一次的加薪、每个月一次的工作报告、每周一次的午餐会报、每天需要的打卡等等;有的工作则是临时发生的,例如刚好总公司有高官来访,需要你准备演讲器材等等!用在生活上面,例如每年的爱人的生日、每天的起床时间等等、还有突发性的电脑大降价(阿~我等好久了~~)等等?。这些工作都可以称为例行性命令,而这些工作 Linux 也都可以帮您提醒,例如:每一天早上 8:00 钟要伺服器连接上音响,并启动音乐来唤你起床;而中午 12:00 希望 Linux 可以发一封信到你的邮件信箱,提醒你可以去吃午餐了;另外,在每年的你爱人的生日的前一天,先发封信提醒你,以免忘记这么重要的一天。

从上面的说明当中可以很清楚的发现两种工作排程的方式:

?一种是例行性的,就是每隔一定的周期要来办的事项;

?一种是突发性的,就是这次做完以后就没有的那一种(电脑大降价....)

那么在 Linux 底下如何达到这两个功能呢?呵呵!那就得使用 at 与 crontab 这两个好东西?!

?at : 这个工作仅执行一次就从 Linux 系统中的排程中取消;

?crontab : 这个工作将持续例行性的作下去!

底下我们先来谈一谈 Linux 的系统到底在做什么事情,怎么有若干多的工作排程在工作呢?然后再回来谈一谈 at 与 crontab 这两个好东西!

Linux 系统的例行性命令有哪些

好了,那么伺服器自己有什么例行性命令要来作呀!?Linux 的工作可多着呢!由前面提到的几篇文章中,我们知道Linux 本身在背景下的工作可是很多的,尤其是网路开放的情况下,建立与取消连线、MySQL 资料库的即时更新、以及一些例行的系统指令,例如释放记忆体的工作等等。由于例行的工作非常的多,实在不可能每天都要管理员来手动输入吧!所以才会建立这个工作排程的需求的!基本预设的工作有底下这些:

?进行资料轮替 ( log rotate ):这个步骤重要了!尤其是在 log file 的选项当中!由于登录档案会越来越大,所以需要适时适量的将登录档备份,并以新开的档案来进行记录,这样效率会比较好,因此就需要使用 log rotate 啦!系统预设的重要工作之一;

?rpm 资料库的建立:虽然 RPM 资料库会在你以 RPM 安装之后即更新到 RPM 资料库当中去,但是难保会有漏网之鱼,所以系统也会设定每隔依段时间自动的搜集系统上面的 RPM 资料库来建置一番;

?建立 locate 的资料库:是否还记得为何使用 locate 这个指令时,搜寻速度超快!那是因为 Linux 系统上将档案与路径都记录在资料库里面了!所以使用 locate 的时候,嘿嘿!直接指向资料库去 ( /var/lib/slocate/slocate.db ) ,偏偏麻烦的是这个档案的更新是每天一次!所以当你今天更新的档案,使用 locate 反而可能会找不到....

?进行程序的分析:每隔依段时间会进行程序的分析,如果发现有僵尸程序的时候,就会将他删去!以保持记忆体的工作能力!

?登录档视察:这个东西是在 Red Hat 7.1 以后才出现的东西,后来太好用了,所以被拿到旧版的 Red Hat 里面去使用!基本上就是分析登录档啦!然后据以解析有问题的纪录档,以维护主机的安全性!这部份不才小弟也自己写了一个简易型的分析档案,觉得更好用就是了!

?指纹资料库的比对:基本上就是 tripwire 这个套件啦!可以用来分析最近被更动过的档案内容!蛮不错的一个程式!有空也来玩玩看。

Linux 预设的例行工作至少就有这些了,再加上您努力的为 Linux 进行工作排程的设计,嘿嘿!每天的工作量可是相当的大的呢!

仅执行一次的工作排程

如果仅要执行一次的工作,就使用 at 这个指令吧!这个指令其实就是 atd 这个服务啦!所以请记得一定要启动这个服务呦!

1.ntsysv

2.选择 atd

3.按下 OK !

基本上, atd 是预设开启的,如果您没有更动过系统预设值的话,那么上面的动作就不需要动?!下达 at 这个动作会将工作排程写入 /var/spool/at 这个目录下呢!然后等待系统将之执行?!此外,这个 at 指令虽然预设是所有人都能进行,但是可以经由 root 的规范来限制使用的人口。限制的方法其实与 /etc/hosts.allow(deny) 类似,使用 /etc/at.allow(deny) 这两个档案来限制:

?限制使用者原理:当使用者执行 at 时,系统会

1.先找寻 /etc/at.allow 这个档案,写在这个档案中的使用者才能使用 at ,没有在这个档案中的使用者则不能使用 at ( 即使没有写在 at.deny 当中

);

2.如果没有 /etc/at.allow 就寻找 /etc/at.deny 这个档案,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 档案中的使用者,就可以使用 at 咯;

3.如果两个档案都不存在,那么只有 root 可以使用 at 这个指令。

?Red Hat 预设情况下,只有 /etc/at.deny 这个档案,且这个档案的内容为空白的,由于内容没有任何使用者,所以当然『所有人都可以使用 at 』

?如果不想要某个使用者使用 at 时,那么将该使用者帐号写到 /etc/at.deny 这个档案中即可。

好了!我们来谈一谈 at 的语法吧!

[test @test test]# at [-m] TIME

(下达工作指令) [test @test test]# atq

(查看目前的工作排程) [test @test test]# atrm [jobnumber]

(删除排程) 参数说明: -m

:执行 at 所规范的工作排程时,将萤幕输出结果 mail 给下达指令的使用者 TIME

:时间的格式,有底下几个:

HH:MM YYYY-MM-DD

ex 04:00 2002-05-30 (五月三十号四点执行)

HH[pm;am] + number [hours;days;weeks]

ex 4pm + 3 days (在过 3 天的下午 4 点)

HH:MM

ex 12:00 (今天的 12 点执行)

HH[pm;am] [Month] [Day]

ex 1pm May 30 jobnumber:每一个 at 工作排程都有编排的顺序!这个即是! 范例: [test @test test]# at 5pm

mail -s test test

2002-05-30 12:00 a test 8

2002-05-30 17:00 a rest [test @test test]# atrm 5

2002-05-30 17:00 a rest

请注意!在 at 下达之后,便进入指令列下达的模式!在这里你可以重复的输入指令,但是离开的时候请下达『 [Ctrl] + D 』就可以离开了!离开之后,系统会告诉你这个工作排程的号码与使用者是谁!呵呵!很简单吧!

循环执行的例行性命令

这个循环的例行性命令其实就是 cron 这个服务啦 (crond)!当你下达 crontab 的指令之后,会将你的命令写入 /var/spool/cron这个目录当中呦!例如 test 下达了他的 crontab 命令,那么就会自动产生 /var/spool/cron/test 这个档案!『但请注意,这个档案不能直接编辑!』然后执行的指令记录会放置在 /var/log/cron 这个档案中!所以,『如果您的 Linux 系统不知道是否被木马入侵时,可以搜寻一下 /var/log/cron 这个记录挡,视察看看有没有被搞鬼?』

好了!我们来看一下 crontab 的指令语法吧!

[test @test test]# crontab [-u user] [-l | -e | -r] 参数说明: -u user :只有 root 能下达的参数,视察或编译其他使用者的 crontab 内容 -l

:列出 crontab 的内容 -e

:编辑 crontab 的内容 -r

:删除 crontab 的内容 范例: 一般使用者 test 要在每天的 12:00 发信给自己: [test @test test]# crontab -e

上面的例子是说:假如你需要在每天的正午 12:00 发一封信给你自己,而且信的内容已经写好了,那要怎样作呢?而且,另一个假设是,你在 Linux Server 中的权限仅止于一般使用者,并不是 root (管理员)身份,那要怎样设定你的例行性命令呢?哈哈!那就使用 crontab 这个指令吧!你只要执行『 crontab -e 』就可以进入 vi 的编辑画面来编辑你的例行性命令说!

在上面的例子中,输入 crontab -e 时,会出现一个 vi 画面,然后你在 vi 画面中输入上面的一行字,之后按 :wq 储存后离开!即可完成编辑!容易吧!那上面那一行字代表什么意义呢?你可以看到,在真正执行命令之前(就是 mail test

(0-59)

小时

(0-23)

日期

(1-31)

月份

(1-12)

(0-6)

另外,如果是『 *

』的时候,代表所有数字都适用的意思。所以,你就可以知道我上面那一行写的意义为何了!那就是『不论何月、何日、星期几的 12 点 0 分时,执行 mail test

例题一:假如你的女朋友生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 发一封信给他,

这封信的内容已经写在 /home/test/lover.txt 中了 [test @test test]# crontab -e 59 23 1 5 * mail pigpp

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有