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 �Cu admin �Ce  管理员给admin创建任务

 

                    anacroncron补充,防止关机情况下未执行任务


            facl必须文件系统启用才能使用

            facl  FILEACL  将自己的文件的访问权限授予他人

          

        查看文件facl情况:

                 getfacl FILE…      

 

                setfacl �Cm 目标:权限 FILE…            setfacl �Cx  目标:权限 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




你可能感兴趣的:(crontab,at,facl)