linux下例行任務(crontab,at)及facl學習

linux下例行任務執行:

        at:交互式指定命令執行,執行結果發送郵件

            格式:  at HH::MM 時下次到達HH::MM時運行程序

                        at now+ #[minutes|hours|days|weeks]

                        at [noon|midnight|teatime]

                        at month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)


                    atq,at -l 查看at執行隊列

                    atrm,at -d 刪除at隊列中指定任務

                    at -f  file  讀取file作爲命令文件

        

            batch 自動在系統資源空閒時執行

           at命令通過Ctrl+d提交後臺執行,執行結果發送給root用戶郵件

            

        用戶能否執行at命令需查看/etc/at.allow,查看是否允許該用戶執行,若無該文件則查看/etc/at.deny查看是否阻止該文件執行


mail:發送郵件

                        mail USERNAME[@HOSTNAME]

                                        -s “SUBJECT”指定郵件主題

 

                [root@localhost ~]# echo"Hello world" | mail -s "test mail 1" admin

 

crontab:     

            crontab依賴於後臺服務 service crond status

            cron配置文件:

                 系統cron/etc/crontab

                 用戶cron/var/spool/cron/USERNAME

 

            [root@localhost ~]# cat /etc/crontab

            SHELL=/bin/bash

            PATH=/sbin:/bin:/usr/sbin:/usr/bin

            MAILTO=root

            HOME=/

 

            # For details see man 4 crontabs

 

            # 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

             定義命令應使用絕對路徑

            *表示不受限制  */#  #時間一次 

            */7 * * * * 並不能做到精確7分鐘一次,只能通過腳本控制420s一次來實現

            * * * * 1-5  週一到週五執行

            * * * * 2,4  每週24執行

 

            結果發送給相關用戶郵件,不顯示郵件可使用輸出重定向解決

                            Command> /dev/null

 

        用戶crontab 命令:

                     -l 列出已經定義好的所有任務

                     -e 打開cron編輯器,增加或刪改任務,不推薦直接使用vim

                     -r 移除所有任務

 

        管理員可以 crontab –u admin –e  管理員給admin創建任務

 

                    anacroncron補充,防止關機情況下未執行任務


            facl必須文件系統啓用才能使用

            facl  FILEACL  將自己的文件的訪問權限授予他人

          

        查看文件facl情況:

                 getfacl FILE…      

 

                setfacl –m 目標:權限 FILE…            setfacl –x  目標:權限 FILE  取消權限   -R遞歸

                             目標  用戶 u:USERNAME

                                g:GROUPNAME

                    權限:rwx

            啓用facl後屬性權限查找爲屬組->屬主facl -> 屬組->屬組facl->other


Test:

    

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

    20 3 * * 1-6 /usr/bin/cp /etc/ /backup/etc-"date +%F"

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

    30 2 * * 7  /usr/bin/cp /etc/fstab /backup/fstab-"date +%F-%H-%M-%S"

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

    0 0 * * * /usr/bin/egrep "^[S|M].*" /proc/meminfo >>/statistics/meminfo.txt

    0 1 * * * /usr/bin/echo "=================="  >>/statistics/meminfo.txt




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章