12. 계획 임무, 일지 윤전

7137 단어
작업 계획
계획 임무는 일회성과 순환적인 계획 임무로 나뉜다
스케줄 실행
역할: 계획 작업은 주로 주기적인 작업을 하고 현재 가장 중요한 용도는 정기적으로 데이터를 백업하는 것이다
일회성 스케줄링 집행at---실전
    
at 
  now +5min
  teatime tomorrow (teatime is 16:00)
  5pm august 3 2019 
 1: 
[root@biudefor ~]# yum -y install at
[root@biudefor ~]# systemctl status atd    #      
[root@biudefor ~]# systemctl start atd      //       

[root@biudefor ~]# at now +1min    //        
at> useradd uuuu  
at>        //Ctrl+D
job 1 at Sat Mar 21 22:34:00 2015

[root@biudefor ~]# id uuuu
 2: 
[root@biudefor ~]# vim at.jobs 
useradd u99 
useradd u00 
touch /a.txt

[root@biudefor ~]# at 20:33 < at.jobs
 3:
1.   sudo  
[root@biudefor ~]# id jack
uid=1007(jack) gid=1012(jack) groups=1012(jack)
[root@biudefor ~]# useradd jack   #       
[root@biudefor ~]# visudo
  91 ## Allow root to run any commands anywhere
  92 root    ALL=(ALL)       ALL
  93 jack    ALL=(ALL)       NOPASSWD: ALL  #    

[root@biudefor ~]# su - jack 
2.  sudo   jack  at  
   [jack@biudefor ~]$ vim jack.at
   sudo useradd u200
   sudo useradd u300
   sudo touch /home/jack.txt
   [jack@biudefor ~]$ at 20:38 < jack.at                                     

순환 스케줄링 실행cron 사용자급
[root@biudefor ~]# systemctl status crond.service

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

#crond              

    :
[root@biudefor ~]# 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 username,             
     :
Minutes   Hours    Day-of-Month    Month    Day-of-Week    Command 
                                                            
 0-59     0-23        1-31         1-12       0-7
           man  :  #man 5 crontab
  :
*: 
*/5     
,:      
- :     

실전
[root@biudefor ~]# vim /home/soso.sh
#!/bin/bash
touch /opt/a.txt
[root@biudefor ~]# chmod +x /home/soso.sh

예약된 작업 작성
[root@biudefor ~]# crontab -e           //          
  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
[root@linux-server ~]# crontab -l      #      

인스턴스
00 00 * * * /home/soso.sh           #    

00 02 * * * ls                      #  2:00  

00 02 1 * * ls                      #  1 2:00  

00 02 14 2 * ls                     #  2 14 2:00 

00 02 * * 7 ls                      #   2:00  

00 02 * 6 5 ls                      #  6    2:00 

00 02 * * * ls                      #  2:00  

*/5 * * * * ls                      #  5   

00 02 1,5,8 * * ls                      #  1,5,8  2:00  

00 02 1-8 * * ls                    #  1 8  2:00 

다른 사용자를 사용하여 만들기
[root@biudefor ~]# crontab -u jack -e  #  jack    
[root@biudefor ~]# crontab -u jack -l  #  jack       
[root@biudefor ~]# crontab -r  #           
[root@biudefor ~]# crontab -u jack -r #  jack       
       :

  :
/etc/cron.deny
  :
             crontab  

  :
/etc/cron.allow
  :
            crontab  

         
 /etc/crontab

로그 회전
2. 로그 시스템 rsyslog
로그 관리 기본 사항
rsyslog      
logrotate    

** 1. 로그를 처리하는 프로세스**
rsyslogd:        ,       ,  ,  sshd,su,    at,cron... 
httpd/nginx/mysql:            
[root@biudefor ~]# ps aux |grep rsyslogd
root        752  0.0  0.2 216440  5548 ?        Ssl  20:18   0:00 /usr/sbin/rsyslogd -n

       :
/etc/rsyslog.conf 

2. 일반적인 로그 파일(시스템, 프로세스, 응용 프로그램)
#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@biudefor ~]# w                       #        /var/log/wtmp

[root@biudefor ~]# last                #        /var/log/btmp

[root@biudefor ~]# lastlog             #          /var/log/lastlog

3. logrotate 로그 회전
       ?      
 :          (rsyslog   、Nginx       ...)
 、logrotate (  ,    ) 
1.         ,         
2.              ,      
3. logrotate          ,        crond    
logrotate     :
     :/etc/logrotate.conf (            )
      
[root@biudefor ~]# vim /etc/logrotate.conf  
weekly              #     ,     
rotate 4            #  4  
create              #         
dateext             #         
#compress           #     ,         
include /etc/logrotate.d             #           ,             

/var/log/wtmp {                     #                 
 monthly                            #        
 minsize 1M                         #    1M   ,            
 create 0664 root utmp              #        ,        
 rotate 1                           #     
}

/var/log/btmp {    
 missingok                          #         
 monthly                            
 create 0600 root utmp              
 rotate 1                           
} 

실전 사례
 1:    /var/log/yum.log

[root@biudefor ~]# vim /etc/logrotate.d/yum    
/var/log/yum.log {
 missingok                                #     
 #notifempty                              #       
 #size 30k                              #    30k   
 #yearly 
 daily                                    #         
 rotate 3      
 create 0777 root root 
}

  :

[root@biudefor ~]# /usr/sbin/logrotate /etc/logrotate.conf    #    
[root@biudefor ~]#  /usr/sbin/logrotate -f /etc/logrotate.conf    #      
[root@biudefor ~]# ls /var/log/yum*
/var/log/yum.log  /var/log/yum.log-20191110

[root@biudefor ~]# grep yum /var/lib/logrotate/logrotate.status #                 
"/var/log/yum.log" 2019-11-10-21:26:14 

테스트
1.                    ,       ,     ?
#    
2.       8        ,    ??
# 0 8 * * 7 /usr/sbin/reboot
3.                  ,        :
(1).    4:50   /abc               ;
# 50 16 * * * /usr/bin/rm -rf /abc/*
(2).       5:50  /data                   backup.tar.gz;
# 50 17 * * 1 /usr/bin/tar -czf back.tar.gz /data/*
(3).    8:00      crontab。
# systemctl enable crond.service

좋은 웹페이지 즐겨찾기