linux計劃任務

一、總結Linux系統上的任務計劃(at、crontab)的詳細使用方法

 

linux上的任務計劃    
   
    任務計劃:    
        在將來時間點一次性執行某任務:at batch    
        週期性執行某任務:crontab    
   
    電子郵件服務:    
        smtp:簡單郵件傳輸協議 simple mail transmission protocol    
            /var/spool/mail/USERNAME(存放某個用戶郵件的文件)    
            本地郵件服務(25端口)默認會開啓,發送    
        pop3:郵局協議    
        imap4:互聯網訪問協議,從收取網絡上收取郵件    
       
        mail命令:    
       
            默認進入交換式郵件收發接口(打開郵件箱),輸入郵件編號查看郵件內容    
            
            -s 「」  雙引號內生郵件主題,郵件正文須要交互式提供    
            mail -s 「hi」  root@local    
           
            輸入重定向能夠將文件內容做爲郵件內容發送    
            mail -s 「hi」  root@local <    /PATH/TO/SOMEFILE    
           
            利用管道爲郵件提供內容    
            COMMAND | mail -s 「hi」  root@local    
           
               
    at命令:    
   
        承載將來某時間運行的某做業:    
        支持使用做業隊列:    
            默認爲a隊列    
            做業隊列只能爲a,b單個字符    
           
        在mail交互式接口下ctrl+d提交做業    
       
        at 【option】。。。TIME    
        TIME:    
            (1)絕對時間:    
                HH:MM    
                MMDD[CC]YY,MM/DD/[CC]/YY,    
                指下一個時間點到來的時間執行    
                tomorrow 標註明天某時間點    
            (2)相對時間    
                now+#UNIT    
                    minute,hour,day,week    
            (3)模糊時間    
                midnight 00:00    
                noon 12:00    
                teatime 16:00    
               
        經常使用選項:    
            -q QUEUE: 指定at做業的隊列名    
            -f /PATH/TO/SOMEFILE 從指定的路徑計劃執行文件    
            -l 查看指定的做業隊列中的等待運行的做業列表    
                 at -q b -l    
            -c 查看待運行做業的    
            -d:刪除指定做業至關於atrm    
           
        在at做業中提交中的命令建議使用絕對路徑    
       
        batch    
            執行時間由系統自行選擇在資源較爲空閒時運行指定的任務    
           
           
        crontab:週期性任務計劃    
           
            守護進程:crond 系統啓動後便一直運行在後臺,隨時監控着任務表上任務的執行時間點是否到了    
           
            週期性任務有兩類:    
                (1)系統cron任務:沒有默認運行用戶身份,因此須要額外指定運行者 存在於/etc/crontab    
                        # Example of job definition:    
                    # .---------------- minute (0 - 59)    
                    # |  .------------- hour (0 - 23)    
                    # |  |  .---------- day of month (1 - 31)    
                    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...    
                    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat    
                    # |  |  |  |  |    
                    # *  *  *  *  * user-name  command to be executed   
                    7個字段:    
                        前5個字段:時間點    
                        user-name: 以哪一個用戶的身份運行任務    
                        command to be executed: 要運行任務           
               
               
                (2)用戶cron任務:由某個用戶提交,默認    
                    存在於/var/spool/cron/USERNAME    
                     文件中的某些命令多是帶有機密性的,不容許用戶查看    
                     不建議使用 vim命令查看    
                     建議使用crontab命令    
                    
                        # Example of job definition:    
                    # .---------------- minute (0 - 59)    
                    # |  .------------- hour (0 - 23)    
                    # |  |  .---------- day of month (1 - 31)    
                    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...    
                    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat    
                    # |  |  |  |  |    
                    # *  *  *  *  *  command to be executed   
                    5個時間點:    
                        分鐘:有效取值範圍0-59;    
                        小時:0-23    
                        日:1-31    
                        月:1-12    
                        周幾:0-7    
                        注意:幾月幾號與周幾,不建議同時使用;    
                    時間表示法:    
                        *: 對應時間點有效取值範圍內的每一個時間點;    
                        -: 一個特定連續時間範圍, 3-7    
                        ,:一個離散的時間點, 3,5,7    
                        /#:有效時間範圍內的每多少時間;用於指定頻率;    
                                1-30/4, */4    
                        5 */3 * * * /bin/echo "howdy"    
                        5 7 * * 1-5 /bin/echo "howdy"linux

                    
        crontab命令:    
                        crontab [-u user] [-l | -r | -e]    
                            -u user: 不是管理本身的cron任務,而是指定的目標用戶的cron任務;僅root擁有管理其它用戶的cron任務的權限;默認管理本身的;    
                            -l: list,列出任務;    
                            -r: remove, 移除全部任務;    
                            -e: edit,編輯,打開一當前shell會話的默認編輯器來編輯cron任務表;    
                補充性的工具:anacron:    
            注意:    
                (1) 若是不想接收任務執行結果的通知郵件:    
                    COMMAND > /dev/null    
                    COMMAND &> /dev/null    
                (2) 對於crontab文件來說,%有特殊功用;若是命令中會出現%, 要記得轉義,或者用單引號對其引用;    
                (3) crontab的PATH變量與用戶的變量不徹底相同,因此,建議在cron中的任務要使用絕對路徑            
           ios

 

二、每週一到週六的凌晨3點20分,運行cp命令對/etc/目錄進行歸檔另存,存儲位置爲/backups/etc-YYYY-MM-DD;

 

20 3 * * 1-6    /bin/cp -Rf /etc/*    /backup/etc-'date +$F'shell

三、每週日凌晨2點30分,運行cp命令對/etc/fstab文件進行備份,存儲位置爲/backup/fstab-YYYY-MM-DD-hh-mm-ss;

30 02 * * *    /bin/cp /etc/fstab   /backup/fstab-$(date +%Y-%m-%d-%H-%M-%S)vim

四、天天晚上12點,取得/proc/meminfo文件中全部以S或M開頭的行,追加至/statistics/meminfo.txt文件中,且天天的消息以前,要加上相似===============分隔線;

 

might /bin/echo '=======' >> /statistios/meminfo.txt && /bin/egrep '^[S|M]'  /proc/meminfo  >> /statistios/meminfo.txt網絡

相關文章
相關標籤/搜索