該文章內容包括四部分,分別爲
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