2019-03-25 课堂笔记 定时任务要领 企业案例 命令

定时任务要领:

* * * * *  /bin/sh /server/scripts/bak.sh &>dev/null

如何调试定时任务?

1查看错误日志

   /var/log/cron

   学会最小化排除:

   先清空,>/var/log/cron

然后再测试和观察

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

   把频率调快

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

4调整系统时间

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

定时任务输出

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

   脚本输出

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

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

  常见企业故障案例

磁盘满的报错

原因往往是inode被占满了。因为定时任务没有加到&>dev/null,定时任务执行的时候把输出给系统root发邮件

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

定时任务在执行的时候,多数情况没办法加载环境变量,特别是/etc/profile,登录后怎么操作都对,但就是放到定时任务里不行。

 命令行:bash登录方式

1手工登录后,加载所有环境变量

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

登录系统后,命令行出现如下提示:为什么?

[root@oldboyedu/home/chenglong1]# su - chenglong1

-sh-4.2$

解答:

用户的环境变量缺失导致的。

执行如下命令解决添加用户要用的文件

-sh-4.2$ cp/etc/skel/.bash* .

-sh-4.2$ source./.bash_profile ./.bashrc

export PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\]\w\[\e[0m\]]\$'

用户管理知识

用户相关文件:

/etc/passwd 用户所在文件

/etc/shadow 密码所在文件

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

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

用户组相关文件:

/etc/group 用户组所在文件

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

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

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

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

用户密码所在文件

/etc/passwd文件:

linux是命令行管理,平时输入ls,cp,谁识别帮我们把我们想要的要的输出,这个工具就是bash(命令行解释器)

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

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

centos7默认解释器就是bash

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

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

[root@oldboyedu~]# tail -1 /etc/shadow

shadow文件各字段含义

bingbing  用户

:!!       密码

:17980    最近更改密码的时间

:0        禁止修改密码的天数

:99999    用户必须更改口令的天数

:7        警告更改密码的期限

:          在用户密码过期之后到禁用账户的天数

:          从1970年1月1日起,到用户被禁用的天数

:          保留

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

默认shell就是/bin/bash

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

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

就是/etc/default/useradd文件配置的。

文件的修改方法

useradd -D -s /bin/sh

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

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

添加用户要用的文件

/etc/login.defs  /etc/skel  /etc/default/useradd

编辑/etc/passwd,通过注释来删除。

不交互设置密码:

方法1:

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

Changing passwordfor user oldgirl.

passwd: allauthentication tokens updated successfully.

方法2:

[root@oldboyedu~]# echo 123456 >pass

[root@oldboyedu~]# cat pass

123456

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

Changing passwordfor user oldgirl.

passwd: allauthentication tokens updated successfully.

[root@oldboyedu~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}'>user.log

[root@oldboyedu~]# cat user.log

gongli1:oldboy

gongli2:oldboy

chenglong1:oldboy

zongsheng:oldboy

chpasswd对密码文件的要求是上述user.log

方法1:

[root@oldboyedu~]# chpasswd

方法2:

[root@oldboyedu~]# tail -4 /etc/passwd|awk -F ":" '{print$1":oldboy"}'|chpasswd

         命令笔记

useradd 添加普通用户

       -u制定UID

      -s指定登录的shell解释器

      -M不创建家目录

      -c添加用户说明

      -d 指定家目录

     -e 设定登录截止日期


groupadd 添加用户组


passwd 给用户修改密码

--stdin从标准输入接收密码接受并设置

chpasswd 从标准输入批量更改用户密码


usermod 修改用户的组

参数同useradd大部分一样


userdel 删除用户

-r 递归删除用户目录及下内容

备份或确认家目录下无有用内容

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容