作业目标:linux运维实战练习-2015年9月5日课程作业(练习)安排

作业环境:CentOS 6.7/7 x86_64


一、作业(练习)内容:

1、总结Linux系统上的任务计划(at、crontab)的详细使用方法;

2、每周一到周六的凌晨3点20分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD;

3、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;

4、每天晚上12点,取得/proc/meminfo文件中所有以S或M开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线;

二、完成时间:

2015年9月8日之前。


三、完成步骤:

1、总结Linux系统上的任务计划(at、crontab)的详细使用方法;

Linux上的任务计划:

任务计划:

在未来时间点一次性执行某任务:at, batch

周期性执行某任务: crontab

1)at命令:

承载未来时间运行的某作业:

支持使用作业队列:

默认为a队列;

Ctrl+d  //提交作业

at [option]... TIME

TIME:

(1) 绝对时间

HH:MM,

MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD

tomorrow

(2) 相对时间

now+#UNIT

minute, hour, day, week

(3) 模糊时间

midnight

noon

teatime

常用选项:

-q QUEUE: at作业队列;

-f /PATH/FROM/SOMEFILE:从指定的文件中读取要运行的作业;

-l: 查看作业队列中的等运行作业列表;相当于使用atq命令;

-c AT_JOB_NUM: 查看待运行作业的内容;

-d: 删除指定作业;相当于atrm


2)crontab:周期性任务计划

(1) Crond是什么?

    Crond是linux系统中用来定期执行命令或指定程序任务的一种服务。一般情况下,安装完操作系统之后,默认便会启动Crond任务调度服务,在我们前面的系统安装及开机启动优化设置中,我们也设置保留了Crond开机自启动。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作。如果有,便会根据期预先设定的定时任务规则自动执行该定时任务工作。

   crontab正如前面所说这个命令可以周期性的执行任务工作,例如:每五分钟做一次服务器时间同步。要执行crontab这个命令,也需要启动一个服务crond才行,这个命令是生产工作中最常用到的命令,必须掌握。

(2) 指令说明

    通过crontab我们可以在固定的间隔时间执行指定的系统指令或script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合(注意:日和周不要组合)。crond服务通过crontab命令可以很容易的实现周期性的日志分析或数据备份等运维场景工作。


(3) 指定的使用格式

    默认情况下,当用户建立定时任务规则后,该规则记录对应的配置文件会存在于/var/spool/cron中,其crontab配置文件对应的文件名与登录的用户名一致,如:root用户的定时任务配置文件为/var/spool/cron/root。

    Crontab定时任务的书写格式也很简单,用户的定时任务一般分为6段(空格分隔,系统的定时任务则/etc/crontab分为7段),前五段为时间设定段,第六所要执行的命令或脚本段。

    基本格式如下:

2015年9月05日【任务计划使用和练习】-JY1506402-19+liuhui880818_linux

(4)crontab依赖的服务

[root@MyTest-C67 ~]# chkconfig --list crond
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off



2、每周一到周六的凌晨3点20分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD;

[root@MyTest-C67 ~]# mkdir /backups/
[root@MyTest-C67 backups]# /bin/cp -r /etc /backups/etc-`date +%F`
[root@MyTest-C67 backups]# ls
etc-2015-08-25
[root@MyTest-C67 backups]# crontab -e
no crontab for root - using an empty one
20 03 * * 1-6 /bin/cp -r /etc /backups/etc-`date +%F` >/dev/null 2>&1


3、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;

[root@MyTest-C67 backups]# date +%H-%M-%S
15-58-42
[root@MyTest-C67 backups]# date
Tue Aug 25 15:58:46 CST 2015
[root@MyTest-C67 backups]# date +%F-%H-%M-%S
2015-08-25-15-59-03
[root@MyTest-C67 backups]# mkdir /backup
[root@MyTest-C67 backups]# /bin/cp /etc/fstab  /backup/fstab-` date +%F-%H-%M-%S`
[root@MyTest-C67 backups]# ls /backup
fstab-2015-08-25-15-59-58
#crontab -e
30 02 * * 0 /bin/cp /etc/fstab /backup/fstab-` date +%F-%H-%M-%S` >/dev/null 2>&1

4、每天晚上12点,取得/proc/meminfo文件中所有以S或M开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线;

#crontab -e
*/1 * * * * /bin/echo "==========================" >>/statistics/meminfo.txt
*/1 * * * * /bin/grep -E "^S|^M" /proc/meminfo >>/statistics/meminfo.txt
[root@MyTest-C67 backups]# cat /statistics/meminfo.txt 
==========================
MemTotal:        1004772 kB
MemFree:           64332 kB
SwapCached:            0 kB
Mlocked:               0 kB
SwapTotal:       2047996 kB
SwapFree:        2047996 kB
Mapped:            15844 kB
Shmem:               172 kB
Slab:             224060 kB
SReclaimable:     156212 kB
SUnreclaim:        67848 kB
==========================