如何调试定时任务
1.查看错误日志****
/var/log/cron
学会最小化排除
>/var/log/cron
先清空然后测试和观察
2.增加频率调试*****
把频率调快
3.把定时任务执行时间比当前时间拖后5分钟
有个5分钟的提前量,然后测试
4.调整系统时间
把系统时间,调整到脚本执行时间之前
5.通过脚本日志输出调试定时任务
定时任务输出
* * * * * /bin/sh 运行的文件 &>/tmp/bak.log
脚本输出
tar zcvf >/tmp/tar.log
- 注意点:只能执行一次的程序,一定要在测试环境测试好
代码发布流程:
1.办公室测试环境==>idc机房测试环境==>idc 机房正式环境
2.防止正式环境发生错误,从而影响用户体验,业务稳定
NO space left on device 企业常见故障案例
磁盘满了报错,原因是inode占满了
因为定时任务没加&>/dev/null 定时任务执行时把输出给系统root发邮件
邮件服务器postfix默认不开,这些给系统发的邮件就会堆在临时目录(大量小文件)
/var/spool/clientqueue /6
/var/spool/postx/maildrop/7
程序手动没问题定时任务不执行
export变量生产方案
定时任务在执行脚本的时候多数情况没办法加载环境变量,特表示/etc/profile
登陆后怎么操作都对,就是放到定时任务不行
命令行:bash登陆
1.手工登陆后,加载所有环境变量(~/.bash_profile,~/bash_rc,/etc/profile,/etc/bashrc)
2.定时任务执行脚本属于非登陆状态(/etc/bashrc)
所有运维都会把变量放在/etc/profile ,把这个文件里变量定义
在执行脚本中 重新定义
用户管理
用户相关的文件
/etc/passwd 用户所在文件
/etc/shadow 密码所在文件
useradd oldboy 实际上就是修改两个文件
passwd oldboy 实际上就是修改密码文件
用户组相关文件
/etc/group 用户组所在文件
/etc/gshadow 组密码所在文件
创建用户组依然修改上述文件
eba949a0e7b03f0c0613ab55242f9ada passwd指纹
groupadd 添加组
用户:密码占位符:UID:GID:用户说明:家目录:登陆shell解释器
Linux是命令行管理,输入命令 是/bin/bash
bash是命令行解释器
用户密码/etc/shadow
root:用户名:
$6$iawIcJw3$XqfxsRELjyaPfW4hfYMGIlSYJtAiTt2Lgz/xZPWG8WT8IGHop09jFKOW7EkgXtMmExAFw9TVZzmUUxwRZikMc/:MDS加密的密码字串信息:
17980:上次修改密码到现在的时间:
0:禁止修改修改密码
99999:密码最长有效期:
7:提前几天提醒用户密码即将过期:
:在密码过期多少天后禁用账户:
:密码失效时间(默认为空,永久有效)
:保留字段
/etc/group 用户组所在文件
root:用户组名:
x:用户组密码:
0:GID:
:用户组成员
用户管理的常见命令
- useradd
-u 指定uid
-g 指定属组 添加用户时
-s指定用户的登陆shell
-M不指定家目录
-D 相当于改/etc/default/useradd ==vim /etc/default/useradd
-s 更改shell解释器
-e 更改创建时间 - userdel 删除用户的同时删除家目录
-r 递归删除 - passwd
-d 清空用户密码(不用密码登陆)
--stdin 从标准输入接收密码并设置
-l 锁定用户
-u 解锁用户
-S查看用户锁定状态
删除用户
备份或者确认没用
chage -l 用户名 查看 截止日期
/etc/default/useradd useradd命令配置文件
默认shell就是 /bin/bash
/etc/skel 为每个用户提供用户环境变量的牡蛎
/etc/skel 目录创建用户默认就会把子目录下的文件拷贝到/home/用户名下
用户的环境变量缺失
执行如下命令解决
-sh-4.2$ cp /etc/skel/.bash* .
-sh-4.2$ source ./.bash_profile ./.bashrc
[chenglong1@oldboyedu ~]$
[chenglong1@oldboyedu ~]$
添加用户要用的文件
/etc/login.defs 用户属性变量
用户相关的
/etc/login.defs 创建用户时的属性变量
/etc/skel 新用户创建时会拷贝它下面的隐藏文件
/etc/default/useradd useradd配置文件
[root@oldboyedu ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home #指定家目录
INACTIVE=-1 #用户过期是否停权
EXPIRE= #用户终止日期不设置表示不启动
SHELL=/bin/bash #默认shell解释器
SKEL=/etc/skel #创建用户会把skel 下的隐藏文件拷贝到
CREATE_MAIL_SPOOL=yes #创建meil文件
通过# 注释来删除
history 记录
passwd --stdin 从标准输入接收密码并设置
不交互设置密码
- 工作中密码管理思路
用户密码要足够复杂,最好8位以上包含(大小写) 、数字、特殊字符
较大企业用户密码可以统一管理
动态密码:动态口令,
cat/ user.log
chpasswd对密码文件的要求
创建用户oldboy01-10 密码跟用户名相同
echo oldboy{01..10}|xargs -n1|sed -rn 's#(.*)#useradd \1;echo \1|passwd --stdin \1#g'p |bash
网友评论