【学神】1-13 计划任务与日志管理

本节所讲内容:

 at 定制单次执行的计划任务

 cron定制周期性计划任务

 配置脚本实现周期性任务

 配置公司内网服务器每天自动开关机

 Linux系统日志记录规律

 自定义日志记录方式

 配置远程收集日志服务器

一、计划任务

1at 只能执行一次

语法: at  时间

服务:atd  必须开启

[root@xuegod163 ~]# /etc/init.d/atd status   #查看服务状态
atd (pid  2206) is running...
[root@xuegod163 ~]# /etc/init.d/atd start    #启动服务

【例】

[root@xuegod163 ~]#at 20:00 2015-2-23   #创建计划任务在2015年2年23日20:00执行
[root@xuegod163 ~]#at now +10min       #创建计划任务在十分钟后执行

1.1 at查询

[root@xuegod163 ~]# at -l                 #查询当前的计划任务
32015-02-03 20:55 a root
22015-02-23 20:00 a root
[root@xuegod163 ~]# ll /var/spool/at/*  
-rwx------  1 root   root   3842 Feb  3 20:45 /var/spool/at/a00002016a5170
-rwx------  1 root   root   3842 Feb  3 20:45 /var/spool/at/a000030169e127
PS:执行成功的at计划任务会在该目录下成生一个可执行的脚本文件

1.2 at任务删除

语法:atrm at序列号

[root@xuegod163 ~]# atrm 2

2、Crond周期性计划任务

2.1 配置文件

[root@xuegod163 ~]# vim /etc/crontab

2.2 开启服务

[root@xuegod163 ~]# /etc/init.d/crond status    #查看服务状态   
crond (pid  2195) is running...
[root@xuegod163 ~]# chkconfig --list crond      #查看是否开机启动
crond          0:off1:off2:on3:on4:on5:on6:off
[root@xuegod163 ~]# chkconfig crond on        #设置服务开机自启动
 
[root@xuegod163 ~]#ls /etc/cron*              
/etc/cron.hourly   /etc/cron.daily   /etc/cron.weekly    /etc/cron.monthly
PS:对于系统级别的计划任务,需要执行的命令和脚本都放在这里

 

2.3 针对用户级别的计划任务

 对于root用户:

crontab �Ce    #创建  

crontab �Cl     #显示

crontab �Cr     #删除

格式:分 时 日 月 周 命令

取值范围

分:0-59

小时:0-23

日:1-31

月:1-12

周:0-7   0 和7 都是周日

2.4 crontab的使用

[root@xuegod163 ~]# crontab -e 
57 20 * * *  echo `date` > /tmp/date.txt
[root@xuegod163 ~]# date           #查询当前时间            
Tue Feb  3 20:57:11 CST 2015
[root@xuegod163 ~]# cat /tmp/date.txt 
Tue Feb 3 20:57:01 CST 2015
【例】 特殊写法
#每月9,18,22日的3点1分,开始执行备份脚本
1  3  9,18,22  * *  /usr/bin/back.sh
#每月9-18日,3:00执行
0  3  9-18  * *  /usr/bin/back.sh
#每5分钟,执行一次
*/5  *  *  * *  /usr/bin/back.sh
【例】 每天删除5天前的文件
[root@xuegod163 ~]# crontab -e   
1  1  * * *  find /home/log/ -type f -mtime +5 -exec rm {} \;
【例】 使用root身份,给其它普通用户指定crontab
语法:crontab -u USERNAME  -e/-l/-r
[root@xuegod63 ~]# crontab -u mk -e
1 * * * *  touch /tmp/a.txt
【例】 清除其他用户的计划任务
[root@xuegod63 ~]# crontab -u mk -r
【例】 清空root用户自己的计划任务:
[root@xuegod63 ~]# crontab  -r

2.5 anacron

 cron用控制循环执行例行性工作。如果我要设定机器每天早上8点进行备份服务。除非保证机器在8点这个时间点不会关机,如果关机了,cron中的脚本,在下次开机将不会被执行。

   anacron并没有取代cron的意思,anacron用于机器重启后,会侦测停机期间,有没有cron没有执行的计划任务,如果有,会立即执行一下没有执行的任务。

2.6 实战:定时开机

BIOS:计算机在运行时,首先会进入BIOS,它在计算机系统中起着非常重要的作用。一块主板性能优越与否,很大程度上取决于主板上的BIOS管理功能是否先进。

2.6.1 进入bios,一般是在开机后出现主板画面时按Delete键,部分品牌机可能按F2。

2.6.2 启动电脑时看到这个提示按Delete,就可以进入bios设置界面了。然后通过键盘上的箭头选择Power Management Setup,就进入电源管理设置了。

wKiom1ZEE2GAgro5AAeBu1jRR9I489.png

 

2.6.3 通过回车进入这个设置后,选择Wake Up Event Setup,回车选择Press Enter。

wKiom1ZEE5HS0TObAAZoRjNdLyI353.png

2.6.4最后,在这个界面内继续找到Resume By RTC Alarm,回车选择。

wKioL1ZEFA7CEJHXAAjcRrvY9mU523.png

 

2.6.5 继续回车选择,将Disabied 更改为Enabled,然后继续回车确定。然后再继续设置时间点和日期。

wKioL1ZEFEXQ4UdeAAlJFAZaiKc900.png

 

 

6.6选择日期,并且选择你需要电脑每天在几点开机,当然,要保证你的主板时间是准确的。

wKioL1ZEFHGwVVwyAAYZfg97Mf0778.png

6.7 假如你需要每天都定时开机,就选择Every Day,你如果想要在每天6:45开机,就通过数字键输入06:45:00,最后,一般按F10 进行保存,重启电脑后生效! 

wKioL1ZEFK-AHMYzAAsV4eTr2Ys222.png

二、日志管理  (说明:主要日志目录 /var/log)

1 常用的系统日志如下:

 1.1核心启动日志:/var/log/dmesg

 1.2系统报错或重启服务等日志:/var/log/messages

 1.3邮件系统日志:/var/log/maillog

 1.4 cron(定制任务日志)日志:/var/log/cron   #计划日志执行成功与否,在这个文件中看

 1.5 验证系统用户登录:/var/log/secure

 1.6记录所有的登入和登出: /var/log/wtmp

【例】  查看正常登录用户的信息
[root@xuegod163 ~]# last   #查看所有登录过系统的用户和IP
[root@xuegod163 ~]# > /var/log/wtmp   #清空文本
【例】  查看所有登陆的用户信息
[root@xuegod163 ~]# lastlog    #实际上查看的是 /var/log/lastlog的信息
Username         Port     From             Latest
root               tty1                      Tue Dec 18 22:22:39 +0800 2012
【例】  查看登陆错误的用户信息
[root@xuegod63 ~]# lastb   #实际上查看的是 /var/log/btmp的信息
root     tty1                          Tue Dec 18 09:45 - 09:45  (00:00)

测试:

[root@xuegod163 ~]# ssh 192.168.1.63            
[root@xuegod163 ~]# ssh [email protected]
[root@xuegod163 ~]# lastb
mk       ssh:notty    xuegod63.cn      Tue Feb  3 21:28 - 21:28  (00:00)    
mk       ssh:notty    xuegod63.cn      Tue Feb  3 21:28 - 21:28  (00:00)    
mk       ssh:notty    xuegod63.cn      Tue Feb  3 21:28 - 21:28  (00:00)    
root     ssh:notty    xuegod63.cn      Tue Feb  3 21:28 - 21:28  (00:00)

2 日志记录方式: 先分类,然后每个类中再分级别

2.1主要9种日志分类(FACILITY):

authpriv   安全认证相关

cron       at和cron定时相关

daemon    后台进程相关

kern        内核产生

lpr         打印系统产生

mail       邮件系统相关

syslog     日志服务本身

news      新闻系统  (和BBS差不多,新闻组)

 uucp   系统产生  Unix-to-Unix Copy(UNIX至UNIX的拷贝),Unix系统的一项功能,允许计算机之间以存储-转发方式交换e-mail和消息。在Internet兴起之前是Unix系统之间连网的主要方式。

系统保留的日志类型:

local0到local7   #共8个系统保留系统日志类型,给其它程序使用,或用户自定义用。

2.2 日志8个级别:以下排列,由轻到重

debug                 排错信息

info                   正常信息

notice                 稍微要注意的

warn                  警告

err(error)              错误

crit(critical)            关键的错误

alert                  警报警惕

emerg(emergency)    紧急,突发事件

3日志服务

3.1 RHEL5:syslog

配置文件:/etc/syslog.conf

3.2 RHEL6:rsyslog

配置文件:/etc/rsyslog.conf

4 RHEL6日志的主要内容

4.1 kern.*  内核类型的所级别日志

 4.2 *.info;mail.none;news.none;authpriv.none;cron.none:由于 mail, news, authpriv, cron 等类别产生的讯息较多,因此在 /var/log/messages 里面不记录这些项目。除此其他讯息都写入 /var/log/messages 中。所以messages 文件很重要。

4.3  authpriv.* 认证方面的讯息均写入 /var/log/secure 档案; 

4.4  mail.*:邮件方面的讯息均写入 /var/log/maillog 档案; 

4.5  cron.*:例行性工作均写入 /var/log/cron 档案; 

4.6  local7.*:将本机开机时应该显示到屏幕的讯息写入到 /var/log/boot.log 档案中。

5 日志输入规则:

. (点) : 代表『比后面还要高的等级都被记录下来』的意思,

例如: mail.info 代表只要是 mail 类型的信息,而且该信息等级高于 info (包括 info 本身)时,就会被记录下来的意思。 

.= (点等号) :代表所需要的等级就是后面接的等级而已,其他的都不要! 

.!(点不等号) :代表不等于,亦即是除了该等级外的其他等级都记录。 

【例】  日志写法

cron.none   对于cron类型日志不记录任何信息

cron.=err    对于cron类型日志只记录err级别的信息

cron.err     对于cron类型日志记录大于err级别的信息

cron.!err    对于cron类型日志不记录err级别的信息,其他级别都记录。

6 记录日志的位置

1、日志的相对路径:通常就是放在 /var/log 中 

2、存在远程日志服务器上 

3、有时日志会直接弹出在屏幕上。类似于wall命令。

扩展:

wall命令介绍:wall -- send a message to everybody’s terminal.

[root@bogon log]# wall aaaaaaaaa

这样所有登录Linux虚拟终端的用户都会收到这个信息。

【例】  关于日志路径前“-”号的说明
[root@xuegod63 ~]# vim /etc/rsyslog.conf
mail.*                              -/var/log/maillog

在上面关于 mail 的记录中,在记录的档案 /var/log/maillog 前面还有个减号『 - 』是干嘛用的?

由于邮件所产生的讯息比较多,因此我们希望邮件产生的讯息先储存在速度较快的内存中 (buffer) ,等到数据量够大了才一次性的将所有数据都填入磁盘内这样将有利于减少对磁盘读写的次数减少IO读写开销。另外,由于讯息是暂存在内存里,因此若不正常关机会导致登录信息未写入到文档中,可能会造成部分数据的遗失。 

 

7 服务重启和开机启动

[root@xuegod163 ~]#service rsyslog restart   
[root@xuegod163 ~]#chkconfig rsyslog on

8日志的存储格式

DATA TIME HOSTNAME APP (NAME)   [PID]:MESSAGES

说明:

DATA TIME:日志记录的日期和时间

HOSTNAME APP (NAME)   [PID]:什么机器,什么程序(程序的PID):

【例】 修改服务的日志文件指定到某一个文件
[root@xuegod163 ~]# vim /etc/ssh/sshd_config    作修改如下内容

 #SyslogFacility AUTHPRIV   为SyslogFacility  local0

 添加  local0.*           /var/log/sshd.log

 重启:#service rsyslog restart

 [root@xuegod163 ~]# service sshd restart #要先重启rsyslog,再重启sshd,产生一些日志
       Stopping sshd:                                             [  OK  ]
       Starting sshd:                                              [  OK  ]
[root@xuegod63 ~]# cat /var/log/sshd.log 
Feb  3 22:13:30 xuegod63 sshd[7182]: Received signal 15; terminating.
Feb  3 22:13:30 xuegod63 sshd[7249]: Server listening on 0.0.0.0 port 22.
Feb  3 22:13:30 xuegod63 sshd[7249]: Server listening on :: port 22.

 

【例】 如何防止日志被黑客删除呢?

[root@xuegod63 ~]# chattr +a /var/log/sshd.log
[root@xuegod63 ~]# lsattr /var/log/sshd.log 
-----a-------e- /var/log/sshd.log
[root@xuegod163 ~]# tail -f /var/log/sshd.log   #下面远程连接一下,可以看到日志
[root@xuegod163 ~]# ssh 192.168.1.63

加入了这个属性后,你的 /var/log/messages 登录档从此就仅能被增加,而不能被删除,直到 root 以『 chattr -a /var/log/messages 』取消这个 a 的参数后,才能被删除移喔! 

 

9日志回滚

说明:(日志回滚过程: 创建新文件、改名旧文件。)

配置文件:

(1)主配置文件 #vim /etc/logrotate.conf

(2)单独配置文件 #vim /etc/logrotate.d/*  

[root@xuegod163 ~]# vim /etc/logrotate.conf

weekly <==预设每个礼拜对登录档进行一次 rotate 的工作

rotate  4 <==保留几个日志文档呢?预设是保留四个!

create <== 回滚日志后,创建一个新的空文件来存储新的数据。

 

【例】
/var/log/wtmp {
    monthly
    create 0664 root utmp
    minsize 1M
    rotate 1
}

说明:

/var/log/wtmp { <==仅针对 /var/log/wtmp 所设定的参数

 monthly <==每个月一次,取代每周! 

minsize 1M <==档案容量一定要超过 1M 后才进行 rotate (略过时间参数) 

create 0664 root utmp <==设定新建文件的权限 、所有者、用户组 

rotate 1 <==仅保留一个,亦即仅有 wtmp.1 保留而已。 }

 

                     学神-IT-教育51cto技术交流群:468845589  快来上我们公开课吧!

                                            学神MK老师:1273815479

                                            学神ZY老师:3054384936

 

 

                                                       学神IT-1508-好心情提供

 

你可能感兴趣的:(at,•,定制单次执行的计划任务)