day18-定时任务补充和用户管理知识
定时任务要领:
尽量使用脚本编写定时用户,输出定向到空
* * * * * /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
注:有时候程序只能执行一次,一定要在测试环境测试好,然后直接复制到正式环境。
代码发布流程:
办公室测试环境==>IDC机房测试环境==>IDC机房正式环境
防止在正式环境发生错误,从而影响用户体验和业务稳定。
企业故障案例:No space left on device常见企业故障案例
磁盘满的报错,原因往往是inode被占满了
df -i
因为定时任务没有加&>/dev/null,定时任务执行的时候把输出给系统root发邮件。
邮件服务器postfix服务默认不开,这些给系统发的邮件就会堆在临时目录(大量小文件存在)
用户管理知识
用户相关文件:
/etc/passwd 用户信息所在文件
/etc/shadow 用户密码信息所在文件
用户组相关文件:
/etc/group 用户组信息所在文件
/etc/gshadow 用户组密码信息所在文件
/etc/skel 模版目录
案例:
登录系统后,命令行出现如下提示:为什么?
[root@oldboyedu /home/chenglong1]# su - chenglong1
-sh-4.2$
-sh-4.2$
解答:用户的环境变量缺失导致的。
执行如下命令解决
-sh-4.2$ cp /etc/skel/.bash* .
-sh-4.2$ source ./.bash_profile ./.bashrc
[chenglong1@oldboyedu ~]$
[chenglong1@oldboyedu ~]$
-sh-4.2$ export PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$'
[chenglong1@oldboyedu ~]$