计划任务与日志轮转

计划任务

一, 一次调度执行 -----at

语法格式

at    时间规格
       now +5min
       teatime tomorrow (teatime is 16:00) midnight noon
       5pm august 3 2024 

root@linux-server ~ ]# yum -y install at
[root@linux-server ~]# systemctl status atd    #查看启动状态
[root@linux-server ~ ]# systemctl start atd        #首先要启动服务
[root@linux-server ~ ]# systemctl enable atd   # 做开机启动

[root@linux-server ~]# at now +1min    #一分钟后开始执行
at> useradd uuuu  
at> <EOT>         #Ctrl+D
job 2 at Thu Jul 13 11:55:00 2023

[root@linux-server ~]# id uuuu
[root@linux-server ~]# atq  #查看一次性任务
[root@linux-server ~]# atrm id  #删除一次性任务
[root@linux-server ~]# cd /var/spool/at

[root@linux-server ~]# at 4pm  at 12:30 +3[day|min|hour|month|year|week]
at 4pm 2023-09-03

teatime        下午4点
noon        中午12点
midnight    午夜12点

小需求:

at now +15min

at 3pm

at 3pm tomorrow

at 3pm +1week

at 10:00 2024-10-01

 输入重定向批量调度

[root@linux-server ~]# vim at.jobs 
useradd u99 
useradd u00 
touch /a.txt

[root@linux-server ~]# at 20:33 < at.jobs

二,循环调度执行cron用户级

 https://crontab.guru/ 查看任务运行时间网址

安装软件
    [root@qfedu.com ~]#  yum -y install crontabs  #如果软件不存在安装

启动服务
    rhel5/6:
    [root@qfedu.com ~]#  /etc/init.d/crond status
    [root@qfedu.com ~]#  /etc/init.d/crond start

    rhel7:
    [root@qfedu.com ~]#  systemctl start crond.service
    [root@qfedu.com ~]#  systemctl status crond.service
    [root@qfedu.com ~]#  systemctl enable crond.service

开机启动(rhel5/6)
    [root@qfedu.com ~]# chkconfig crond on


[root@linux-server ~]# systemctl status crond.service  #查看服务状态

[root@linux-server ~]# ps -ef | grep crond 
root        755      1  0 20:18 ?        00:00:00 /usr/sbin/crond -n

#crond进程每分钟会处理一次计划任务

存储位置:
[root@linux-server ~]# cd /var/spool/cron/

管理方式: 
crontab -l    List the jobs for the current user. //列出当前用户的计划任务
crontab -r    Remove all jobs for the current users. //删除当前用户所有的计划任务
crontab -e    Edit jobs for the current user.      //编辑当前用户的计划任务
管理员可以使用 -u -l -e username, 去管理其他用户的计划任务

 

语法格式 :
Minutes   Hours    Day-of-Month    Month    Day-of-Week    Command 
 分钟         小时            日             月           周           执行的命令,最好是命令的绝对路径
 0-59      0-23        1-31         1-12          0-7

时间:
*:每
*/5 每隔分钟
,:不同的时间段
- : 表示范围

[root@linux-server ~]#  vim /home/soso.sh
#!/bin/bash
touch /opt/a.txt
[root@linux-server ~]# chmod +x /home/soso.sh

 创建计划任务

[root@linux-server ~]# crontab -e            //当前用户编写计划任务

[root@linux-server ~]# crontab -l      #列出计划任务

每天6:00执行
0 6 * * *  /home/soso.sh

每天8:40执行
40 8 * * * /home/soso.sh

每周六凌晨4:00执行
0 4 * * 6  /home/soso.sh

每周六凌晨4:05执行
5 4 * * 6  /home/soso.sh 

每周六凌晨5:00执行
0 5 * * 6  /home/soso.sh

每周一到周五9:30
30 9 * * 1-5  /home/soso.sh

每周一到周五8:00,每周一到周五9:00
0 8,9 * * 1-5   /home/soso.sh

每周六23:59
59 23 * * 6      /home/soso.sh

每天0:30
30 0 * * *    /home/soso.sh

22 15 3 2 5            #每年2月的3日和周五的15:22执行
22 13 */3 2 *         #每年的2月每隔三天的13:22执行
22 15 10,15,30 * *

使用其他用户创建

[root@linux-server ~]# crontab -u jack -e  #使用jack用户创建
[root@linux-server ~]# crontab -u jack -l  #查看jack用户的计划任务
[root@linux-server ~]# crontab -r  #删除当前用户的计划任务
[root@linux-server ~]# crontab -u jack -r #删除jack用户的计划任务

使用者权限文件:
文件:
/etc/cron.deny
说明:
该文件中所列用户不允许使用crontab命令

文件:
/etc/cron.allow
# 当这个文件产生时,/etc/cron.deny文件失去作用,只有这个文件中的用户才能使用crontab
说明:
该文件中所列用户允许使用crontab命令

系统本身的计划任务
 /etc/crontab

日志轮转

rsyslog 日志管理 
logrotate日志轮转

1.常见日志文件

#tail -f /var/log/messages                    #动态查看日志文件的尾部,系统主日志文件

#tail -f /var/log/secure                    #记录认证、安全的日志

tail /var/log/maillog                        #跟邮件postfix相关

#tail /var/log/cron                            #crond、at进程产生的日志

tail /var/log/dmesg                              #和系统启动相关

#tail /var/log/yum.log                       #yum的日志

tail -f /var/log/mysqld.log                 #MySQL日志

tail /var/log/xferlog                          #和访问FTP服务器相关

/var/log/boot.log                           #系统启动过程日志记录存放

#[root@linux-server ~]#w                       #当前登录的用户 /var/log/wtmp

#[root@linux-server ~]#last                   #最近登录的用户 /var/log/btmp
第一列,用户名;
第二列,终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,tty(teletypewriter)意味着直接连接到计算机或者本地链接的用户;
第三列,登录的ip或者内核。
第四列,开始时间;
第五列,结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机);

[root@linux-server ~]#lastlog               #所有用户的登录情况 /var/log/lastlog

2.日志的优先级

日志级别分为:7种日志级别代号0-7

0 debug             #有调试信息的,日志信息最多

1 info              #一般信息的日志,最常用

2 notice            #最具有重要性的普通条件的信息

3 warning           #警告级别

4 err               #错误级别,阻止某个功能或者模块不能正常工作的信息

5 crit              #严重级别,阻止整个系统或者整个软件不能工作的信息

6 alert             #需要立刻修改的信息

7 emerg             #内核崩溃等严重信息

none                #什么都不记录

3.logrotate日志轮转

logrotate (轮转,日志切割) 
1. 如果没有日志轮转,日志文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间 
3. logrotate本身不是系统守护进程,它是通过计划任务crond每天执行

logrotate 配置文件:

主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值