2019-03-25Day18 课后笔记 定时任务与用户管理

如何调试定时任务?

1、查看错误日志

       /var/log/cron

      学会最小化排除:

      先清空,>/var/log/cron

     然后在测试和观察

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

     把频率调快。

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

   03:00执行,当前05:00 就把时间调整05:05,有个5分钟提前量

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

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

      定时任务输出

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

     脚本输出:

      Tar zcvf oldboy.tar.gz ./data >/tmp/tar.log

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

代码发布流程:

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

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

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

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

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

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

/var/spool/clientmqueue/        6

/var/spool/posfix/mildrop/       7

程序通过手动可以执行,放定时任务里不执行

2、Export变量生产案例

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

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

命令行:bash登录方式

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

(2)、定时任务执行脚本输出非登录状态(/etc/bashrc)

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

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

在执行的脚本中  重新定义

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


Linux用户管理知识与应用实践

1、用户相关文件:

/etc/passwd             用户所在文件

 /etc/shadow            密码所在文件

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

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

2、用户组相关文件

/etc/group            用户组所在文件

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

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

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

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

/etc/passwd

第一列root是用户名称

第二列 :x是 : 用户密码

第三列:0 是  :用户UID

第四列:0是: 用户组GID

第五列:root是:用户说明

第六列:/root是:用户家目录

第七列:/bin/bash是:shell解释器

/etc/shadow

1、用户名称

2、用户密码:加密过的字符串

3、最近更改密码的时间:从1970年1月1日开始,到最近一次更改口令的天数

4、禁止修改密码的天数:这里记录了这个账号的密码需要经过几天才可以被变更

5、用户必须更改口令的天数:必须要在这个时间之内重新设定你的密码,否则这个账号江湖暂时失效

6、警告更改密码的权限:在用户密码过期前多少天提醒用户更改密码

7、不活动时间:在用户密码过期之后到禁用账户的天数

8、失效时间:从1970年1月1日期,到用户被禁用的天数

9、标志:保留

/etc/group  

1、用户组名:用户组的名称

2、用户组密码:通常不需要设该密码

3、GID:用户组的ID

4、用户成员:加入这个组的所有用户

/etc/gshaow

1、用户组名:用户组的名称

2、用户组密码:这个段可以使空的或!,如果是这样的,表示没有密码

3、用户组管理员用户:这段也可以为空,如果有多个,用哪个“,”分隔

4、用户成员:加入这个组的所有用户,如果有多个,用哪个“,”分隔

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

默认shell就是/bin/sh

默认的家目录在home下

默认的家目/home/用户名下面有很多隐藏文件

就是/etc/default/useradd配置的


修改方法:

useradd-D -s /bin/sh   ==>相当于vim编辑文件

添加用户要用的文件

/etc/login.defs:预先定义创建用户时需要的一些用户默认配置信息

/etc/skel:用来存放新用户需要的所有基础环境变量文件的目录。当添加新用户时,这个目录的所有文件会自动被复制到新添加的用户的家目录下。

/etc/default/yseradd:在使用useradd添加用户时预先加载的默认用户信息设置文件(useradd命令的配置文件)

你可能感兴趣的:(2019-03-25Day18 课后笔记 定时任务与用户管理)