linux基础(十四)定时任务和管理系统的临时文件

一、yum命令的练习

1、开机挂载的两种方法

(1)vim /etc/rc.d/rc.local


mount /dev/sr0 /mnt ##在文件中加入挂载位置

chmod +x /etc/rc.d/rc.local ##给该文件添加执行权限

(2)在fstab文件中添加

先将文件挂载,然后用mount查看挂载信息

linux基础(十四)定时任务和管理系统的临时文件

只需要注意挂载类型,编辑

vim /etc/fstab

linux基础(十四)定时任务和管理系统的临时文件

第一列为需要挂载的文件或设备; 
第二列为挂载点 
第三列为文件的类型 
第四列为挂载选项,defaults默认就可以了,详细参考man mount.命令; 
第五列为设置是否让备份程序dump备份。0:不备份,1:备份,2:备份(但比1重要性小)。设置了该参数后,Linux中使用dump命令备份系统的时候就可以备份该挂载点。 
第六列为是否检验挂载文件,0:不检验,1:要检验,2要检验(但比1晚),一般根目录设置为1,swap分区不需要检验设为0。

2、yum命令练习

首先搭好yum源,然后清除yum缓存,列出yum源列表来检测yum源是否搭建成功。

linux基础(十四)定时任务和管理系统的临时文件

1).  搜寻与raid相关的软件有哪些?

yum search raid

2).  找出vsftpd这个软件的功能是什么?

yum info vsftpd

3).  列出yum中提供的所有软件包名称.

yum list all

4).  列出提供passwd文件的软件有哪些?

yum provides */passwd

##加上目录,搜索出来的将会是与各个目录下passwd对应的软件包

linux基础(十四)定时任务和管理系统的临时文件

5).  利用yum的功能,找出以pam开头的软件包有哪些?

yum list all | grep ^pam ##list可以看到软件包的版本和出自哪个源

linux基础(十四)定时任务和管理系统的临时文件

yum search pam | ^pam ##search可以看到软件包的简单介绍

linux基础(十四)定时任务和管理系统的临时文件

6).  找出跟java相关的软件包,并安装1.7的版本.

yum search java | grep 1.7 ##search只需要名称中包含输入的信息就可以

##list 查询软件时输入的名称必须完整,但是可以通过 yum list <available | installed> 来查询 <可以安装的 | 已经安装的>。

二、定时任务

linux系统中的定时任务最多精确到分钟

1、at命令

linux基础(十四)定时任务和管理系统的临时文件

##保存at 定时任务的目录 /var/spool/at/

##只执行一次的定时任务,若执行的任务有输出,将会以邮件的方式发送到创建任务的用户的邮箱。

-m ##如果定时任务无输出,以邮件方式通知
-M ##即使有输出,也不发送邮件给执行者

linux基础(十四)定时任务和管理系统的临时文件

at  具体时间   ##在某个时刻执行

##输入完定时任务的内容后,按ctrl+d,完成设定<EOF>,并会显示任务执行的时间


-v  ##以易读懂的时间格式指定定时任务;  

##at -v now+1day,或者直接at now+1day,两者似乎没什么区别,都是从开始输入任务内容时开始计时

##-v 只是会在输入内容前显示任务执行的时间

linux基础(十四)定时任务和管理系统的临时文件

-l 或者 atq   ##列出定时任务

-d 或者 atrm   ##删除某个定时任务,后跟编号,编号可以通过at -l 或者atq 查询

-c   ##定时任务具体的内容,需要通过at -l 或者atq 查询任务编号


at 的时间格式:(只精确到分钟)

HH:MM

HH:MM YYYY-MM-DD

HH:MM  [am | pm] 

HH:MM+5min 

now+5[day | hour | min | month | week]

也可指定 today 或 tomorrow 来表示今天或明天

at 2pm tomorrow ##明天下午两点


at 的权限设定

/etc/at.allow

/etc/at.deny

linux基础(十四)定时任务和管理系统的临时文件

##系统默认只存在黑名单,白名单优先级高于黑名单

##当白名单存在时,会只允许白名单上的用户创建任务,而无视黑名单

##当白名单不存在时,系统只会禁止黑名单上的用户创建任务

##当黑白名单都不存在时,或者白名单为空时,只有root用户可以使用 at 创建任务

2、banch命令

##同样是std服务下的一个命令。

##当系统负载低于0.8%时执行任务,意思就是让系统在空闲时间执行任务。

linux基础(十四)定时任务和管理系统的临时文件


uptime ##查看系统负载

linux基础(十四)定时任务和管理系统的临时文件

##1当前时间 19:23:00

##2系统已运行的时间 3:15

##3当前在线用户 2 users

##4平均负载:0.09, 0.05, 0.07,最近1分钟、5分钟、15分钟系统的负载


测试时,可以使用dd命令拷贝文件来增加负载,负载增加之后创建batch任务,然后uptime实时关注系统负载,观察当系统负载降至0.8时,是否会执行batch任务

dd if=/dev/zero of=file bs=10M count=1000 

##用dd命令将从zero设备中创建一个10G大小(bs决定每次读写10M,count定义读写次数为1000次),但内容全为0的文件。

if=/dev/zero ##输入文件名,缺省为标准输入。

##/dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。

of=file ##输出文件名,缺省为标准输出。

3、crond服务

定时任务服务,系统每分钟都会扫描任务

linux基础(十四)定时任务和管理系统的临时文件

(1)用户周期性任务

用户周期性任务的文件存放在/var/spool/cron/目录下,以用户的方式分组保存

创建任务的方法可以1、通过crontab命令,2、直接在/var/spool/cron/目录下的用户文件中编辑

crontab -e ##编辑,保存到/var/spool/cron/

crontab -u user -e ##编辑user的任务

crontab -l ##出任务

crontab -r ##删除任务

注意:如果不指定用户,则默认对当前用户的任务进行操作,-u 仅root用户可执行。


任务内容的编辑格式:

钟      小时    天        月  周   命 令

*/10      9-17    1,15      *     *    commands

##以上内容表示每月的1号和15号,9到17时之间,每隔十分钟执行一次

##周参数和   天参数 互不干扰,当两个同时存在数字时,表示某月某天执行,并且某月每周几执行

##例如 0 0 1 jan 0 表示一月一日凌晨,和一月每周日凌晨都执行任务


符号:

*   ##表示每分,每月,每周

/n ## 表示每隔n时间

-   ##1-2, 3-10, xy

,##或者


(2)系统周期性任务

linux基础(十四)定时任务和管理系统的临时文件

系统周期性任务的文件保存在以下目录中

/etc/crontab

/etc/cron.d/

/etc/cron.{monthly,weekly,daily,hourly}

##系统任务通常保存在/etc/crontab中,

##但是为了防止更新系统软件包cronie时出现问题,更好的做法是在/etc/cron.d/目录中创建crontab文件来保存系统任务,

##并可以在日期后再加一段数据表示执行该任务的用户

##对于每天、每月、每周、或者每小时执行一次的任务,可以直接设置成可执行文件,保存在第三个目录中


cron的权限设定

/etc/cron.deny

/etc/cron.allow

##规则和 at 的权限设定相同。

4、mail命令

邮件文件存放位置 /var/spool/mail/目录下,以用户的方式分组保存

(1)mail -s 邮件名  收件人 ##把当前shell当成编辑器来用,编辑完内容后Ctrl+D结束

(2)mail -s 邮件名  收件人 < file ##以file的内容为邮件内容发信

(3)echo “mail content” | mail -s 邮件名  收件人 ##通过管道写入邮件

三、管理系统的临时文件

系统中的服务在正常运行时会产生临时文件


/usr/lib/tmpfiles.d/*.conf ##系统中临时文件的配置

linux基础(十四)定时任务和管理系统的临时文件

vim /usr/lib/tmpfiles.d/tmp.conf

linux基础(十四)定时任务和管理系统的临时文件

文件类型 文件名称 文件权限 文件所有人 文件所有组 文件存在时间

d /tmp 1777 root root 10d


systemd-tmpfiles 命令 ##创建、删除和管理临时文件的服务的命令

systemd-tmpfiles --create /usr/lib/tmpfiles.d/tmp.conf ##创建tmp临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/tmp.conf##清理tmp临时文件