1.crontab
crontab -l
查看定时任务
crontab -e
编辑定时任务
* * * * * /root/test.sh >> /root/test.log
分 小时 日 月 周
例子:
*/2 * * * * /root/test.sh >> /root/test.log
每2分钟执行
10 */2 * * * /root/test.sh >> /root/test.log
每隔2小时的10分执行
10 1 * * * /root/test.sh >> /root/test.log
每天1:10执行
问题:crontab如何实现每隔10秒执行? shell循环+sleep+crontab
常见问题:
如果前面不加python、java等命令而直接执行脚本,需要注意脚本是否有x权限,同时需要注意脚本中第一行标明的解释器是否在环境变量中。
常常出现终端执行ok,定时任务失败,日志显示找不到对应的命令。
2.后台执行
nohup放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态,一般配合&符号一起使用。
固定语法: nohup command &
nohup ./test.sh > /dev/null 2>&1 &
基本含义:
/dev/null
表示空设备文件0
表示stdin标准输入1
表示stdout标准输出2
表示stderr标准错误
> file
表示将标准输出输出到file中,也就相当于 1>file
2> error
表示将错误输出到error文件中
2>&1
也就表示将错误重定向到标准输出上
2>&1 >file
错误输出到终端,标准输出重定向到文件file
nohup ./test.sh &
手动启动脚本 看日志 开发维护 测试
nohup ./test.sh > /root/test.log 2>&1 &
生产上
3.软链接
-
ln -s 原path 目标path
场景:
1、软件版本升级时,若代码中使用的是命令的真实绝对路径,则代码全需要修改,或者升级的目录保持和原来一致,这样有风险。使用软链接能规避这类风险,在基本命令功能保持不变动的前提下,只需重建软链接即可。
2、软件装在系统盘,数据在数据盘,系统盘容量小,数据盘容量大。需要将部分日志存储在数据盘,此时可使用软链接,使得日志实际写入的是数据盘下的文件。
3、升级后原目录转移,软连接文件显示字符跳动。此时重建软链接即可。
4、都要注意权限的变动 -
软硬链接的区别:
- 默认不带参数情况下,ln命令创建的是硬链接。 (ln -s 创建软链接)
- 硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号与源文件不同。
- ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。
- 删除软链接文件,对源文件及硬链接文件无任何影响;
- 删除文件的硬链接文件,对源文件及软链接文件无任何影响;
- 删除链接文件的原文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);
- 若一个文件有硬链接,同时删除原文件及其硬链接文件,整个文件才会被真正的删除。
- 很多硬件设备中的快照功能,使用的就类似硬链接的原理。
- 软链接可以跨文件系统,硬链接不可以跨文件系统。