目录
计划任务
at:一次性调度执行
at:使用
用法:at <时间规格> at now +Nmin at **:** < 文件
ctrl+删除键:删除
ctrl+shift+d:退出
[root@localhost ~]# systemctl status atd 查看at的状态
[root@localhost ~]# systemctl start atd 启动at服务
示例1:2min后删除 tom
[root@localhost ~]# at now +2min
at> userdel -r tom<EOT>
job 10 at Wed Jul 5 11:24:00 2023
[root@localhost ~]# date
2023年 07月 05日 星期三 11:26:24 CST
[root@localhost ~]# id tom
id: tom: no such user
示例2: 让www使用at
[root@localhost ~]# visudo
www ALL=(ALL) NOPASSWD:ALL
[root@localhost ~]# su – www
[www@localhost ~]$ vim www.txt
[www@localhost ~]$ date
2023年 07月 05日 星期三 11:31:47 CST
[www@localhost ~]$ at 11:33 < www.txt
job 11 at Wed Jul 5 11:33:00 2023
[www@localhost ~]$ cat www.txt
sudo useradd tom
sudo touch /home/www.txt
[www@localhost ~]$ cat www.txt
sudo useradd tom
sudo touch /home/www.txt
[www@localhost ~]$ ls /home
www
[www@localhost ~]$ date
2023年 07月 05日 星期三 11:33:19 CST
[www@localhost ~]$ id tom
uid=1001(tom) gid=1001(tom) 组=1001(tom)
[www@localhost ~]$ ls /home
tom www www.txt
atq:查看一次性计划任务
示例:
[root@localhost ~]# atq
13 Wed Jul 5 16:22:00 2023 a root
atrm:删除一次性计划任务
示例:
[root@localhost ~]# atq
14 Wed Jul 5 16:30:00 2023 a root
[root@localhost ~]# atrm 14
[root@localhost ~]# atq
crontab:循环性计划
用法: crontab [选项] 文件
安装软件
[root@localhost ~]# yum -y install crontabs
启动服务
[root@localhost ~]# systemctl start/stop crond #开启/关闭
[root@localhost ~]# systemctl status crond #查看状态
[root@localhost ~]# systemctl enable crond #开机启动
[root@localhost ~]# systemctl disable crond #关闭开机启动
存储位置
[root@localhost ~]# cd /var/spool/cron/
管理方式
crontab -l //列出当前用户的计划任务
crontab -e //编辑当前用户的计划任务
crontab -r //删除当前用户所有的计划任务
crontab -u <user> (root)管理其他用户的计划任务
语法格式 :
Minutes Hours Day Month Week Command(绝对路径)
0-59 0-23 1-31 1-12 0-7(0和7都表示周日)
* * * * *
*:每
*/5 每隔分钟
,:不同的时间段
- : 表示范围
示例:
[root@localhost ~]# vim /home/soso.sh
touch /home/a.txt
[root@localhost ~]# chmod +x /home/soso.sh
[root@localhost ~]# crontab -e
0 6 * * * /home/soso.sh
[root@localhost ~]# crontab -l
0 6 * * * /home/soso.sh
为www用户创建
[root@localhost ~]# crontab -u www -e
日志管理
rsyslog 日志管理
日志进程:
[root@localhost ~]# ps aux |grep rsyslogd
root 962 0.0 0.4 216560 4744 ? Ssl 13:12 0:01 /usr/sbin/rsyslogd -n
日志配置主文件:
[root@localhost ~]# /etc/rsyslog.conf
常见的日志文件
[root@localhost ~]# tail -f /var/log/messages #动态查看日志文件的尾部,系统主日志文件
[root@localhost ~]# tail -f /var/log/secure #记录认证、安全的日志
[root@localhost ~]# tail /var/log/maillog #跟邮件postfix相关
[root@localhost ~]# tail /var/log/cron #crond、at进程产生的日志
[root@localhost ~]# last #最近登陆的用户
root pts/0 192.168.91.1 Wed Jul 5 17:20 still logged in
reboot system boot 3.10.0-1160.92.1 Wed Jul 5 17:20 - 17:20 (00:00)
root pts/1 192.168.91.1 Wed Jul 5 15:00 - 15:04 (00:03)
root pts/0 192.168.91.1 Wed Jul 5 14:38 - down (02:41)
第一列,用户名;
第二列,终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,tty(teletypewriter)意味着直接连接到计算机或者本地链接的用户;
第三列,登录的ip或者内核。
第四列,开始时间;
第五列,结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机)
[root@localhost ~]# lastlog #所有用户的登录情况
日志优先级
日志级别分为:7种日志级别代号0-7
0 debug #有调试信息的,日志信息最多 最低级
1 info #一般信息的日志,最常用
2 notice #最具有重要性的普通条件的信息
3 warning #警告级别
4 err #错误级别,阻止某个功能或者模块不能正常工作的信息
5 crit #严重级别,阻止整个系统或者整个软件不能工作的信息
6 alert #需要立刻修改的信息
7 emerg #内核崩溃等严重信息
none #什么都不记录
logrotate日志轮转
什么是日志轮转?
自动切割日志
logrotate 配置文件:
主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
子配置文件:/etc/logrotate.d/…
配置讲解:
[root@localhost ~]# vim /etc/logrotate.conf
weekly #轮转的周期,一周轮转,单位有yearly weekly daily
rotate 4 #保留4份
create #轮转后创建新文件
dateext #使用日期作为后缀
include /etc/logrotate.d #包含该目录下的配置文件,会引用该目录下面配置的文件
/var/log/wtmp { #对该日志文件设置轮转的方法
monthly #一月轮转一次
minsize 1M #最小达到1M才轮转,否则就算时间到了也不轮转
maxsize 10M #当到达10M时,不满时间,也会轮转
create 0664 root utmp #轮转后创建新文件,并设置权限
missingok #丢失不提示
notifempty #空文件不轮转
}
示例:轮转文件/var/log/yum.log
[root@localhost logrotate.d]# vim /etc/logrotate.d/yum
1 /var/log/yum.log {$
2 daily$
3 rotate 3$
4 create 0644 root root$
5 maxsize 1M$
6 missingok$
7 $
8 }$
[root@localhost logrotate.d]# /usr/sbin/logrotate -f /etc/logrotate.d/yum 强制执行
[root@localhost logrotate.d]# ls /var/log/yum*
/var/log/yum.log /var/log/yum.log.1
[root@localhost logrotate.d]# grep yum /var/lib/logrotate/logrotate.status #查看记录所有日志文件最近轮转的时间
[root@localhost opt]# rm -rf /var/log/yum.log.*
[root@localhost opt]# ls /var/log/yum*
/var/log/yum.log
[root@localhost opt]# vim /opt/QF.sh
/usr/sbin/logrotate -f /etc/logrotate.d/yum
[root@localhost opt]# chmod +x /opt/QF.sh
[root@localhost opt]# crontab -e
*/1 * * * * /opt/QF.sh
[root@localhost opt]# ls /var/log/yum*
/var/log/yum.log /var/log/yum.log.1 /var/log/yum.log.2
[root@localhost opt]# crontab -r