Day18课堂笔记
如何调试定时任务?
1,查看错误日志:/var/log/cron
学会最小化排除:先清空,>/var/log/cron
然后在测试和观察
2,增加执行任务频率调试任务
把频率调快
3,把定时任务执行时间比当前时间拖后5分钟
00 03执行,当前时间为5:00,就把时间调成05 05,有个五分钟的提前量
4,把系统时间往前调(测试环境下,企业环境最好不要使用)
5,通过脚本日志输出调试定时任务
定时任务输出:
* * * * * /bin/sh /server/scripts/bak.sh &>/tmp/bak.log
脚本输出:tar zcvf oldboy.tar.gz ./data &>/tmp/tar.log
注意:有时候程序只能执行一次,一定要在测试环境测试好,然后直接复制到正式
防止在正式环境发生错误,从而影响用户体验,业务的稳定
代码发布流程:
办公室测试环境====》IDC机房测试环境====〉IDC机房正式环境
NO space left on device 常见企业故障案例
磁盘满的报错,原因往往是inode被占满了
df -i 查看inode
定时任务没有加&>/dev/null,定时任务执行的时候把输出给系统root发邮件
程序通过手动可以执行,定时任务不能执行
第十四章: Linux用户管理知识与应用实践
用户管理
用户所在文件:/etc/passwd 用户所在文件
/etc/shadow 密码所在文件
Useradd oldboy 添加用户实际上就是修改上述两个文件
Passwd oldboy 改密码时间上就是修改密码所在文件
用户组所在文件:/etc/group 用户组所在文件
/etc/gshadow 用户组密码所在文件(基本废弃)
Useradd oldboy 添加用户时间上也会修改上述两个文件(因为要创建同名的用户组)
Groupadd sa 添加用户组就是修改上述两个文件
Md5sum 给文件设置指纹 (计算和检查MD5数字信息)
[root@zhangxiangyu-58 ~]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadowa3ea2ee78623f96b9bda09cb6cae63bb /etc/passwd
51b4c87d70769782529496d022b4aeee /etc/shadow
acfb19edb5feeb94cab0584693884dac /etc/group
97d2d72a538205143184cf29a67e9b80 /etc/gshadow
/etc/passwd 里的解释器
[root@zhangxiangyu-58 ~]# awk -F ":" '{print $NF}' /etc/passwd|sort|uniq -c
7 /bin/bash
1 /bin/sync
1 /sbin/halt
17 /sbin/nologin
1 /sbin/shutdown
bash是sh的扩展,sh是bash的软连接。
[root@zhangxiangyu-58 ~]# ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 3月 4 18:49/bin/sh -> bash
/bin/bash /server/scripts/bak.sh
/etc/shadow 储存用户密码信息
[root@zhangxiangyu-58 ~]# tail -1 /etc/shadow
test1:!!:17977:0:99999:7:::
bingbing 用户
:!! 密码
:17980 最近更改密码的时间
:0 禁止修改密码的天数
:99999 用户必须更改口令的天数
:7 警告更改密码的期限
: 在用户密码过期之后到禁用账户的天数
: 从1970年1月1日起,到用户被禁用的天数
: 保留
/etc/group 用户组信息文件
[root@zhangxiangyu-58 ~]# grep incahome /etc/group
incahome:x:1004:
/etc/gshadow
[root@zhangxiangyu-58 ~]# grep incahome /etc/gshadow
incahome:!::
useradd 添加普通用户
-u 指定UID -s指定登陆的SHELL解释器 -M 不创建家目录
[root@zhangxiangyu-58 ~]# useradd gongli -u 888 -s /sbin/nologin -M
[root@zhangxiangyu-58 ~]# tail -1 /etc/passwd
gongli:x:888:1010::/home/gongli:/sbin/nologin
/etc/default/useradd 文件 useradd命令的配置文件
默认shell就是/bin/bash
为什么默认的家目录在home下
为什么默认的家目录/home/用户名下面有很多隐藏文件
就是/etc/default/useradd文件配置的。
[root@zhangxiangyu-58 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
修改方法:
useradd -D -s /bin/sh 相当于vim编辑文件。
/etc/skel 目录,创建用户默认就会把次目录下的文件拷贝到/home/用户名下
/etc/skel 为每个用户提供用户环境变量的目录
[root@zhangxiangyu-58 ~]# ls /etc/skel -A
.bash_logout .bash_profile .bashrc .mozilla 用户环境变量
添加用户要用的文件
/etc/login.defs /etc/skel /etc/default/useradd
编辑/etc/passwd,通过注释来删除。
#chenglong1:x:1007:1009::/home/chenglong1:/bin/sh
"/etc/passwd" 30L, 1362C written
[root@zhangxiangyu-58 ~]# su - chenglong1
su: user chenglong1 does not exist
[root@zhangxiangyu-58 ~]# useradd -u 9999 -s /bin/sh -M -g sa -c "老男孩" -e "2019/5/1" zongsheng
[root@zhangxiangyu-58 ~]# tail -1 /etc/passwd
zongsheng:x:9999:1003:老男孩:/home/zongsheng:/bin/sh
[root@zhangxiangyu-58 ~]# id zongsheng
uid=9999(zongsheng) gid=1003(sa) groups=1003(sa)
[root@zhangxiangyu-58 ~]# chage -l zongsheng
Last password change : Mar 25, 2019
Password expires : never
Password inactive : never
Account expires : May 01, 2019
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
usermod -u 8888 -s /bin/bash -m /home/zongsheng -g incahome -c "男孩" -e "2020/5/1"
[root@zhangxiangyu-58 ~]# usermod -u 8888 -s /bin/bash -g incahome -c "男孩" -e "2020/5/1" zongsheng
[root@zhangxiangyu-58 ~]# chage -l zongsheng
Last password change : Mar 25, 2019
Password expires : never
Password inactive : never
Account expires : May 01, 2020
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[root@zhangxiangyu-58 ~]# id zongsheng
uid=8888(zongsheng) gid=1004(incahome) groups=1004(incahome)
[root@zhangxiangyu-58 ~]# tail -1 /etc/passwd
zongsheng:x:8888:1004:男孩:/home/zongsheng:/bin/bash
You have new mail in /var/spool/mail/root
usermod -u 8888 -s /bin/bash -g incahome -c "男孩" -e "2020/5/1" zongsheng
usermod -m /home/zongsheng zongsheng
不交互设置密码:
方法1:
[root@zhangxiangyu-58 ~]# echo 123456|passwd --stdin oldgirl
Changing password for user oldgirl.
passwd: all authentication tokens updated successfully.
方法2:
[root@zhangxiangyu-58 ~]# echo 123456 >pass
[root@zhangxiangyu-58 ~]# cat pass
123456
[root@zhangxiangyu-58 ~]# passwd --stdin oldgirl
Changing password for user oldgirl.
passwd: all authentication tokens updated successfully.
[root@zhangxiangyu-58 ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}' >user.log
[root@zhangxiangyu-58 ~]# cat user.log
gongli1:oldboy
gongli2:oldboy
chenglong1:oldboy
zongsheng:oldboy
chpasswd对密码文件的要求是上述user.log
方法1:
[root@zhangxiangyu-58 ~]# chpasswd
方法2:
[root@zhangxiangyu-58 ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}'|chpasswd