day 18

2019-03-31  本文已影响0人  个中秘密

定时任务要领

        *  *  *  *  * /bin/sh  (索要执行的任务主题)  &>/dev/null  (或 >/dev/null 2>&1)

如何调试定时任务

1、查看错误日志

        /var/log/cron

        学会最小化排除

        先清空,  >/var/log/cron

        然后再测试和观察。

2、增加执行任务频率调试任务

        把频率调快

3、把定时任务执行时间比当前时间拖后5分钟

        00 03执行,当前5:00,咱们就把时间调整提前5分钟

4、调整系统时间(测试环境还凑合)

        00 03 执行,把系统时间调整到2:55

5、通过脚本日志输出调试定时任务

        定时任务输出

        * * * * * /bin/sh  /server/scripts/bak.sh  &>/tmp/bak.log

        脚本输出

        tar  zcvf  oldboy.tar.gz  ./date >/tmp/tar.log

        (注意点:有的程序只能执行一次,一定要在测试环境测试好,然后直接复制到测试)

代码发布流程:

        办公室测试环境==>IDC机房测试环境===>IDC机房正式环境

        防止在正式环境发生错误,从而影响用户体验,业务稳定

No space left on device   常见的企业故障案列

        磁盘满的报错,原因往往是 inode被占满了

        因为定时任务没有加&>./dev/null,定时任务执行的时候把输出给系统root发邮件。

        邮件服务器postfix服务默认不开,这些给系统发的邮件

        /var/spool/clientmqueue/ centos6

        /var/spool/postfix/maildrop/ centos7

企业故障案例:程序通过手动可以执行,放定时任务里不执行。

        crontab文件中没有配置环境变量引起的

        系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。

        因此就需要在crontab文件中指定任务运行所需的所有环境变量。

        定时任务在执行脚本的时候,多数情况没办法加载环境变量,特别是/etc/profile。

        登录后怎么操作都对,但是就是放到定时任务不行。

命令行:bash登录方式

        1.手工登录后,加载所有环境变量(~/.bash_profile,~/.bash_rc,/etc/profile,/etc/bashrc)

        2.定时任务执行脚本属于非登录状态  (/etc/bashrc)。

    实践检验,定时任务能否自动加载/etc/bashrc和/etc/profile文件。

    所有运维都会把变量放到此文件/etc/profile,把这个文件里的变量定义

    在执行的脚本中重新定义。

    具体为crond执行Shell时只能识别为数不多的系统环境变量,普通环境变量一般是无法识别的,如果在编写的脚本中需要使用变量,最好使用export重新声明下该变量,以确保脚本正确执行。以后要将其作为一个开发基本规范写上。

第十四章 Linux用户管理知识与应用实践

1.1、用户及用户组配置文件

    用户相关文件:

        /etc/passwd    用户所在文件

        /etc/shadow    密码所在文件

        useradd oldboy  添加用户实际上就是修改上述两个文件

        passwd  oldboy  改密码实际上就是修改密码

    用户组相关文件

        /etc/group     用户组所在文件

        /etc/gshaow  用户组密码所在文件(废弃状态)

        useradd oldboy    添加用户实际上就是修改上述两个文件(因为要创建同名用户组)

        groupadd  sa  添加用户组就是修改上述两个文件

        md5sum 给文件设置指纹(计算和检查MD5数字信息)

    Linux是命令行管理,平时输入ls,cp,谁识别,帮我们把我们想要的输出呢?

    这个工具就是bash(命令行解释器)。 * ? [abc]

用户登录:输入命令,希望哪个解释器解释(结尾列决定)

        /etc/passwd:bingbing:x:1004:1006::/home/bingbing:/bin/bash

        CentOS7默认解释器是bash。

/etc/passwd里的解释器

        [root@oldboyedu ~]# awk -F ":" '{print $NF}' /etc/passwd|sort|uniq -c

        6  /bin/bash 

        1/bin/sync

        1/sbin/halt

        18/sbin/nologin

        1/sbin/shutdown

        [root@oldboyedu ~]# cat /etc/shells

        /bin/sh  

        /bin/bash 

        /usr/bin/sh 

        /usr/bin/bash

bash是sh的扩展,sh是bash的软连接。

passwd中对各字段的详细说明

给开发人员添加用户,尽量给截止时间

        [root@oldboyedu ~]# useradd gongli2 -g incahome

        [root@oldboyedu ~]# id gongli2

        uid=1006(gongli2) gid=1004(incahome) groups=1004(incahome)

        /etc/default/useradd文件  useradd命令的配置文件

        默认shell就是/bin/bash

        为什么默认的家目录在home下

        为什么默认的家目录/home用户名在面有很多隐藏文件,从哪来的

修改方法:

        useradd -D -s /bin/sh 相当于vim编辑/etc/default/useradd文件。

        [root@oldboyedu ~]# useradd -D -s /bin/sh

        You have new mailin/var/spool/mail/root

        [root@oldboyedu ~]# cat /etc/default/useradd 

        # useradd defaults file

        GROUP=100

        HOME=/home

        INACTIVE=-1

        EXPIRE=

        SHELL=/bin/sh

        SKEL=/etc/skel

        CREATE_MAIL_SPOOL=yes

/etc/skel目录,创建用户就会把此目录下的文件拷贝到/home/目录名下

/etc/skel  为每个用户提供用户环境变量的目录。

        [root@oldboyedu ~]# ls /etc/skel -A.bash_logout .bash_profile         .bashrc===================================================.bash_logout         .bash_profile .bashrc 用户环境变量

/etc/login.defs   添加用户要用的文件(登录的定义文件)【了解】

删除用户相关命令 userdel

        语法:  userdel  [选项] [用户名]

        参数:  -f:强制删除

         -r:递归删除用户目录及下面内容,删除前备份或确认目录下无重要内容

不交互设置密码:

方法1:

        [root@oldboyedu ~]# echo 123456|passwd --stdin oldgirl

        Changing password for user oldgirl.

        passwd: all authentication tokens updated successfully.

方法2:

        [root@oldboyedu ~]# echo 123456 >pass

        [root@oldboyedu ~]# cat pass

        123456

        [root@oldboyedu ~]# passwd --stdin oldgirl <pass

        Changing password for user oldgirl.

        passwd: all authentication tokens updated successfully

上一篇 下一篇

猜你喜欢

热点阅读