该文章内容包括四部分,分别为
1、调度工具crontab
2、后台执行nohup
3、软连接
调度工具
现在主要的调度工具有
1、airflow
2、azkaban
3、rundeck
4、linux自带的crontab
crontab介绍
1.1在编写脚本的时候,按照规范;执行脚本的时候,注意要有执行x权限
第一行写上解释器 #!/bin/bash
以.sh结尾
1.2crontab命令
Options:
-u <user> define user
-e edit user's crontab #编辑
-l list user's crontab #查看
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-x <mask> enable debugging
1.3crontab调度工具支持 只能支持到分钟粒度
* * * * *:按顺序分别代表分 小时 日 月 周
如果想要支持秒级别,可以在shell脚本里面for循环,建立test.sh脚本,内容如下
[root@JD ~]# vi test.sh
[root@JD ~]# cat test.sh
#!/bin/bash
for((i=1;i<=6;i++));
do
date
sleep 10s
done
exit
赋执行权限
[root@JD ~]# chmod 744 test.sh
[root@JD ~]# ll
-rwxr--r-- 1 root root 81 Nov 21 20:10 test.sh
编辑crontab,执行该脚本,crontab内容为
#每10s输出时间到test.log中
[root@JD ~]# crontab -l
* * * * * /root/test.sh >> /root/test.log
[root@JD ~]# tail -F test.log
Thu Nov 21 20:15:01 CST 2019
Thu Nov 21 20:15:11 CST 2019
后台执行
有三种方式可以后台执行
./test.sh &
nohup ./test.sh & 手动启动脚本 看日志 开发维护 测试
nohup ./test.sh > /root/test.log 2>&1 & 该种方式可以将日志文件重定向输出到test.log中,一般用该种方式
软连接
4.1软连接命令命令 ,建议路径配置绝对路径
ln -s 原path 目标path
4.2使用场景
4.2.1版本升级,做软连接,直接配置目标path即可
4.2.2CDH升级 原文件不见了 光标跳动
原因:原文件被删除
解决方式
找原文件文件夹;
删除快捷键文件文件夹--》重新做新的软连接 高版本
4.2.3CDH会生成日志文件到系统盘,将日志文件移动到数据盘,并配置软连接
系统盘 / 50G
数据盘 /data01 2T
CDH log :#CDH默认会生成日志到系统盘,但是系统盘容量有限,需要将日志文件移动到数据盘
/var/log/hbase/xxx.log 1G
/var/log/hbase/xxx.log1 1G
...
/var/log/hbase/xxx.log10 1G
---- 11G
先将程序停止一下,暂停生成日志
mkdir /data01/log/
移动系统盘中的日志文件到数据盘
mv /var/log/hbase /data01/log/
配置数据盘的日志文件目录到系统生成日志目录的软连接
ln -s /data01/log/hbase /var/log/hbase
切记,一定要设置权限(原文件跟软连接的文件都要设置权限) chmod chown
如果忘记权限,可以查看集群中另外一台的权限
实在不行就设置权限(一了百了):777