美文网首页
day18-2019年3月25日

day18-2019年3月25日

作者: Linux_wu_sir | 来源:发表于2019-03-25 23:05 被阅读0次

    如何调试定时任务?

    1、查看错误日志

    /var/log/cron

    学会最小化排除

    > /var/log/cron

    然后再测试和观察

    2、增加执行任务的频率

    把频率调快

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

    4、调整系统时间

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

    定时任务输出

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

    脚本输出

    tar -zcvf oldboy.txt ./data > /tmp/tar.log

    注意点:有时候程序只能执行一次。一定要在测试环境测试好,然后直接复制到正式。

    代码发布流程:

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

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

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

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

    定时任务没有配置&>/dev/null,定时任务执行的时候把输出给系统root发送邮件。

    邮件服务器postfix默认不打开,这些给系统发的邮件就会堆在临时目录(大量小文件存在)

    /var/spool/clientmqueue       / 5

    /var/spool/postfix/maildrop  /6;7

    定时任务手动可以执行,定时任务里不执行。

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

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

    命令行bash登录方式

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

    2.定时任务执行脚本属于非登录状态。

    把变量放到此文件/etc/profile 把这个文件里的变量定义

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

    用户管理:

    /etc/passwd用户所在文件

    /etc/shadow密码所在文件

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

    passwd 改密码实际上就是修改密码所在文件

    用户组相关文件

    /etc/group用户组所在文件

    /etc/gshadow 用户组密码所在文件(废弃)

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

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

    md5sum

    [root@oldboy_template-2 scripts]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow

    c5f043521bd4e2f20085c85a7d25d4dd  /etc/passwd

    4e97b090fb1f63a9d299665e4f145ea6  /etc/shadow

    eed35bf97e0eeb9aa8e370616ac7f6eb  /etc/group

    0f253d839b3b3fbf624a01a7f9407999  /etc/gshadow

    [root@oldboy_template-2 scripts]# useradd test123

    [root@oldboy_template-2 scripts]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow

    ab17c25e66f860a2f30fd640411181c0  /etc/passwd

    9fe8807638c0874cd3aa6caa57e65f5d  /etc/shadow

    23ea30dac79ccce6b27bf4c050dfaed1  /etc/group

    2567da4a4b339ce1b68d6546967009ff  /etc/gshadow

    第一列:用户名称

    第二列:用户密码

    第三列:用户ID

    第四列:用户组ID

    第五列:用户说明

    第六列:用户家目录

    第七列:shell解释器

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

    这个工具就是bash(命令行解释器)

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

          6 /bin/bash

          1 /bin/sync

          1 /sbin/halt

         21 /sbin/nologin

          1 /sbin/shutdown

    [root@oldboy_template-2 scripts]# cat /etc/shells 

    /bin/sh

    /bin/bash

    /usr/bin/sh

    /usr/bin/bash

    相关文章

      网友评论

          本文标题:day18-2019年3月25日

          本文链接:https://www.haomeiwen.com/subject/nhgivqtx.html