由于linux命令实在太多,还是需要常常在工作实践中来学习总结。因此专门弄出一块地方来总结工作中常用的linux命令。
crontab
该命令用来很方便地启动定时任务,任务通常是一个脚本文件。
格式: f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推。
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推。
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推。
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推。
例如,每小时的第30分钟执行某个脚本: 30 * * * * bash a.sh > a.sh.log 2 > &1
crontab -l列出当前用户的周期指令列表
crontab -e 默认使用vi来编辑当前用户的周期指令列
crontab -v列出用户crontab列表的状态
与该命令有关的文件
/etc/cron.deny
该文件中所列的用户不允许使用Crontab命令
/etc/cron.allow
该文件中所列的用户允许使用Crontab命令
/var/spool/cron/
是所有用户的crontab文件
nohup
该命令用来忽略linux客户端工具的挂断信息,使任务继续在服务器上运行,通常是长时间任务。
nohup Command [ Arg ... ] [ & ]
Command通常是一个写好的脚本,Arg是可以传入Commend的参数列表,&用于后台执行,通常还配合重定向,将log日志写入指定位置,如下。实际上这个命令将程序作为守护进程了。
nohup bash a.sh > a.sh.log 2 > &1 &
chage
该命令用来查看、设置用户的密码过期天数等参数。今天早上发现昨晚有些crontab任务没有执行,机器上某些用户的crontab -l不能查看了。如下
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISNxATNyIjM0ETMyUDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
以前没有遇到过,后来发现昨晚刚好是qs用户密码过期了,一旦过期就不能再执行定时任务了,所以使用该命令来修改。
chage -l qs
查看qs用户的密码过期时间等信息
chage --help
查看设置信息,将-E设置为-1,就是永远不过期。
例如
chage -m 0 -M -1 -W -1 -E -1 qs