• 定时任务


    第1章 回顾昨天

    1.1 权限报错问题

    基础权限9位3位特殊共12位

    [oldboy@show ~]$ whoami

    oldboy

    [oldboy@show ~]$ ls /root/

    ls: cannot open directory /root/: Permission denied

     

    [oldboy@show ~]$ rm -f /etc/passwd

    rm: cannot remove `/etc/passwd': Permission denied

     

    [oldboy@show ~]$ ls -l /tmp/oldboy.txt

    -rw-r--r-- 1 root root 6 Jun 26 22:32 /tmp/oldboy.txt

    [oldboy@show ~]$ echo hello oldboy >>/tmp/oldboy.txt

    -bash: /tmp/oldboy.txt: Permission denied

    [root@oldboyedu-39-nb ~]# su - oldboy

    [oldboy@oldboyedu-39-nb ~]$ ls /root/

    ls: cannot open directory /root/: Permission denied

    [oldboy@oldboyedu-39-nb ~]$ ls -d /root/

    /root/

    [oldboy@oldboyedu-39-nb ~]$ ls -ld /root/

    dr-xr-x---. 5 root root 4096 Aug  3 21:28 /root/

    报错的原因及排除过程:

    1.查看文件或目录的权限

    2.查看当前用户与这个文件或目录的关系

    3.当前用户对 这个文件或目录有什么权限

    因为查看目录里面的内容 需要对这个目录拥有 rx权限

    [root@oldboyedu-39-nb ~]# cp /etc/hosts{,.bak}

    [oldboy@show ~]$ rm -f /etc/asswd

    rm: cannot remove `/etc/passwd': Permission denied

     

    [oldboy@oldboyedu-39-nb ~]$ m -f /etc/hosts

    rm: cannot remove `/etc/hosts': Permission denied

    [oldboy@oldboyedu-39-nb ~]$ m -f /etc/hosts

    rm: cannot remove `/etc/hosts': Permission denied

    [oldboy@oldboyedu-39-nb ~]$ ls -l /etc/hosts

    -rwxrwxrwx. 2 root root 216 May 20 22:57 /etc/hosts

    linux删除一个文件的权限 要看 文件所在目录的权限

    文件名存放在 文件所在目录的block中。

    1.查看文件或目录的权限

     ls -ld /etc/

    drwxr-xr-x. 78 root root 4096 Aug  3 21:44 /etc/

    2.查看当前用户与这个文件或目录的关系

    3.当前用户对 这个文件或目录有什么权限

     oldboy对 /etc目录 有rx权限

     删除一个文件的权限  你需要对这个目录拥有w权限

    [oldboy@oldboyedu-39-nb ~]$ echo hello >>/tmp/oldboy.txt

    -bash: /tmp/oldboy.txt: Permission denied

     

    [oldboy@oldboyedu-39-nb ~]$ echo hello >>/tmp/oldboy.txt

    -bash: /tmp/oldboy.txt: Permission denied

    [oldboy@oldboyedu-39-nb ~]$ ls -l /tmp/oldboy.txt

    -rw-r--r-- 1 root root 0 Aug  3 21:54 /tmp/oldboy.txt

    小结:

    1.修改文件 查看文件的内容 需要对文件有 rw

    2.删除 创建一个文件       需要对文件所在目录拥有 wx  rwx

    1.2 怎么样让网站更佳安全

    1.文件644 root root

    2.dir 755 root root

    3.上传目录 upload

    4.file 644 www www 

    5.dir  755 www www

    1.3 文件系统权限

    chattr lsattr

    a

    i

    1.4 排查系统负载高 cpu 内存

    top

    ps -ef

    kill #PID

    第2章 定时任务

    定时任务相当闹钟

    etc-2017-05-20-02.tar.gz

    定时任务 每隔相同的时间  每天  每小时  做相同的事情(命令  脚本*****) 备份

    2.1 rpm 扩展 如何查询软件包的内容和软件包属于哪个大礼包

    有时候一个功能可能只是软件包中的一个 一部分

    2.1.1 查看crond属于哪个大礼包

    crond属于哪个大礼包

    rpm -qf crond命令的绝对路径

    [root@oldboyedu-40 ~]# rpm -qf `which crond `

    cronie-1.4.4-16.el6_8.2.x86_64

    2.1.2 如何查看软件包里面的内容

     rpm -ql

    [root@oldboyedu-40 ~]# rpm -ql cronie

    /etc/cron.d

    /etc/cron.d/0hourly

    /etc/cron.deny

    /etc/pam.d/crond

    /etc/rc.d/init.d/crond

    /etc/sysconfig/crond

    /usr/bin/crontab

    /usr/sbin/crond

    /usr/share/doc/cronie-1.4.4

    /usr/share/doc/cronie-1.4.4/AUTHORS

    /usr/share/doc/cronie-1.4.4/COPYING

    /usr/share/doc/cronie-1.4.4/ChangeLog

    /usr/share/doc/cronie-1.4.4/INSTALL

    /usr/share/doc/cronie-1.4.4/README

    /usr/share/man/man1/crontab.1.gz

    /usr/share/man/man5/crontab.5.gz

    /usr/share/man/man8/cron.8.gz

    /usr/share/man/man8/crond.8.gz

    /var/spool/cron

    2.1.3 实例:查询ifconfig 属于哪个软件包

    [root@oldboyedu-40 ~]# rpm -qf $(which ifconfig )

    net-tools-1.60-114.el6.x86_64

    [root@oldboyedu-40 ~]# rpm -ql net-tools

    [root@oldboyedu-40-nb ~]# rpm -qf `which ifconfig`

    net-tools-1.60-114.el6.x86_64

    [root@oldboyedu-40-nb ~]# rpm -ql net-tools

    安装命令时需要把大礼包全安装上吗

    which 和 whereis  都是找系统里面本身有的  如果which和whereis 都没结果  rpm -qf  还能找么

    第3章 系统定时任务

    3.1 /etc/crontab文件和crontab -e命令区别

    1、格式不同

    前者

    # 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
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed

    后者

    #50 1 * * *  command

    2、使用范围

    修改/etc/crontab这种方法只有root用户能用,这种方法更加方便与直接直接给其他用户设置计划任务,而且还可以指定执行shell等等,
    crontab -e这种所有用户都可以使用,普通用户也只能为自己设置计划任务。然后自动写入/var/spool/cron/usename

    3.服务重启

     1 /etc/init.d/crond restart

     2 service crond restart



    1、crontab 会进行语法检查,vi 不会

    2、听说有些 os 的 crond 不会重读配置,所以用 service 重启

    crontab -e是某个用户的周期计划任务;/etc/crontab是系统的周期任务

    1. crontab -e 与 /etc/crontab 修改语法格式不一样,后者多一个 user 指定

    2. 不管用 crontab -e or 改 /etc/crontab 都不需要重新启动 crond 服务

    01 22 * * * /sbin/shutdown -h now
    执行的结果都是一样, 一般LINUX 都用shutdown -h now 也可以init 0
    init 0在UNIX用得比较多,

    关机需要root的身份在可以执行,
    lz可以选取方法操作
    方法1
    换到root 的身份
    su - root
    crontab -e (按a增加下)
    01 22 * * * /sbin/shutdown -h now   (或01 22 * * * /sbin/init 0)
    保存退出即可以

    方法2 vi /etc/crontab 在里面插入
    01 22 * * * root   /sbin/shutdown -h now
    或 01 22 * * * root   /sbin/init 0

    /var/log/messages 系统日志文件

    /var/log/messages-20170501

    日志切割---日志轮询----系统的定时任务+logrotate(管理日志文件)

    安全信息和系统登录与网络连接的信息:/var/log/secure

    [root@~]# ls -ld /var/log/secure*

    -rw-------  1 root root  23K 2017-09-07 08:12 /var/log/secure

    -rw-------. 1 root root  735 2017-08-20 09:38  /var/log/secure-20170820

    -rw-------  1 root root 9.3K 2017-08-25 03:00 /var/log/secure-20170825

    -rw-------  1 root root 2.4K 2017-08-27 20:46 /var/log/secure-20170827

    -rw-------  1 root root  22K 2017-09-03 06:36 /var/log/secure-20170903

    [root@oldboyedu-40 ~]# ll /etc/cron.daily/

    total 24

    -rwx------. 1 root root  180 Jul 10  2003 logrotate

    -rwx------. 1 root root  927 Mar 22 08:53 makewhatis.cron

    -rwx------. 1 root root  189 Jan 26  2015 mlocate.cron

    -rwxr-xr-x. 1 root root 2126 Jul 19  2013 prelink

    -rwxr-xr-x. 1 root root  563 Nov 23  2013 readahead.cron

    -rwxr-xr-x. 1 root root  433 Nov  7  2015 tmpwatch  

    [root@oldboyedu-40 ~]# cat /etc/logrotate.d/syslog

    /var/log/cron

    /var/log/maillog

    /var/log/messages

    /var/log/secure

    /var/log/spooler

    {

        sharedscripts

        postrotate

           /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

        endscript

    }

    3.2 用户定时任务

    [root@oldboyedu-40 ~]# crontab -l  

    no crontab for root

    [root@oldboyedu-40 ~]# #root用户没有定时任务

    3.3 使用定时任务

    3.3.1 查看定时任务是否运行

    [root@oldboyedu-40 ~]# /etc/init.d/crond status

    crond (pid  8913) is running...

    [root@oldboyedu-40 ~]# ps -ef |grep crond

    root       8913      1  0 14:49 ?        00:00:01 crond

    root      33383  32849  0 22:52 pts/2    00:00:00 grep crond

    [root@oldboyedu-40 ~]# ps -ef |grep sshd

    root       8791      1  0 14:49 ?        00:00:00 /usr/sbin/sshd

    3.3.2 定时任务是否开机自启动

    [root@oldboyedu-40 ~]# chkconfig |grep crond

    crond                0:off      1:off      2:on       3:on       4:on       5:on       6:off

    3.3.3 crontab怎么使用

          crontab命令使用

     -e edit 编辑当前用户的定时任务

                      vi /var/spool/cron/root

          -l list显示当前用户的定时任务

                      cat /var/spool/cron/root

    3.3.4 为何使用crontab命令

                1.有语法检查功能 格式不对

                2.方便

           

    3.4 定时任务相关的文件

    ###/var/spool/cron/

    ###/var/log/cron

    3.5 linux中查看日志

    grep /egrep

    less

    tail /tail -f

    head

    * * * * *  命令

    3.6 每五分钟同步一下系统的时间

    3.6.1 第一个里程碑-用什么命令

    [root@oldboyedu-40 ~]# ntpdate ntp1.aliyun.com

     7 Sep 10:52:44 ntpdate[33569]: step time server 182.92.12.11 offset 2286907.971444 sec

    [root@oldboyedu-40 ~]#

    3.6.2 第二个里程碑-定时任务

    [root@oldboyedu-40 ~]# crontab -l

    #sync time by li  20170101

    */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

    3.6.3 第三个里程碑-检查结果

    date -s "10year"

    Tue Sep  7 10:56:03 CST 2027

    3.7 每天的上午7点到上午11点 每一个小时运行CMD命令

    定时任务中表示小时 每个小时 在分钟上面加上00   表示整点

    3.7.1 格式:

    * 07-11 * * * CMD              ###错误

    00 07-11   * * * CMD          ###OK

    00 07-11/1 * * * CMD           ###OK

    00 07-11 * * * CMD    ###OK

    00 07,08,09,10,11 * * * CMD 

    3.8 早上7点到11点还有晚上10点到12点

    00 07-11,22-00 * * *  CMD

    3.9 每分钟把自己的名字 追加到 /oldboy/oldboy.txt

    3.9.1 第一个里程碑-命令

    [root@oldboyedu-40 ~]# mkdir -p /oldboy

    [root@oldboyedu-40 ~]# echo oldboyedu >>/oldboy/oldboy.txt

    [root@oldboyedu-40 ~]# cat /oldboy/oldboy.txt

    oldboyedu

    3.9.2 第二个里程碑-定时任务

    [root@oldboyedu-40 ~]# crontab -l |tail -2

    #print name by li 20170101

    * * * * *   echo oldboyedu >>/oldboy/oldboy.txt  2>&1

    3.9.3 第三个里程碑-检查

    [root@oldboyedu-40 ~]# tail /oldboy/oldboy.txt

    oldboyedu

    [root@oldboyedu-40 ~]# tail /oldboy/oldboy.txt

    oldboyedu

    [root@oldboyedu-40 ~]# tail -2  /var/log/cron

    Sep  7 12:06:01 oldboyedu-40 crond[8913]: (root) RELOAD (/var/spool/cron/root)

    Sep  7 12:06:01 oldboyedu-40 CROND[35124]: (root) CMD (echo oldboyedu >>/oldboy/oldboy.txt  2>&1)

    [root@oldboyedu-40 ~]# tail /oldboy/oldboy.txt

    oldboyedu

    oldboyedu

    3.9.4 正确格式:

    * * * * *  /bin/echo "oldboy" >>/oldboy/oldboy.txt >/dev/null 2>&1

    3.9.5 姿势:

    定时任务中 命令/脚本  定向到空     >/dev/null 2>&1

    定时任务中 命令/脚本  追加到文件中 >>/tmp/oldboy.log 2>&1

    第4章 扩展

    logroate 如何切割日志

    第5章 总结

    5.1 定时任务书写格式

    5.2 rpm

    第6章 预习

    第四关练习题-定时任务+正则+vim 

  • 相关阅读:
    Linux 常用工具openssh之ssh-add
    Linux 常用工具openssh之scp
    Linux 常用工具openssh之ssh
    Linux 常用工具sysstat之sar
    Shell常用命令之sort
    Docker存储驱动之Device Mapper简介
    ceph-deploy install时,远端节点在执行apt-get update命令时失败
    Ceph osd启动报错osd init failed (36) File name too long
    rdb map出错rbd sysfs write failed
    Docker存储驱动之OverlayFS简介
  • 原文地址:https://www.cnblogs.com/Arlen723/p/7846171.html
Copyright © 2020-2023  润新知