#!/bin/bash
它表示该脚本由/bin/bash
来执行,当然你可以不写,但是我们为了编码的规范都是要写的。
$(cd `dirname $0`;pwd)
表当前脚本目录。
mkdir -p
cp -r
第一个表示创建目录-p
表示检测该文件夹是否存在,存在则不创建,
第二个表示复制文件-r
表示复制文件夹。
flock -x xxxx.lock -c "bash XXXX.sh >> xx.log 2>&1"
flock
为锁-x
表示获得一个独占锁/排他锁,-c
表示在shell中运行一个单独的指令,>>
表示追加写入到log中,2>&1
表示将标准错误信息转变成标准输出,这样就可以将错误信息输出到log 日志中。
`date +%Y%m%d`
输出当前日期:20210923
`date +%Y%m%d --date="-1 day"`
输出当前日期前一天:20210922
nohup sh 6.sh > 6.log 2>&1 &
&
放在结尾表示后台执行脚本;nohup
表示即使关闭终端或者突出账号,程序依然进行;第一个>
表示将日志打印到6.log
文件下;2>&1
表示打印输出所有日志。
hive -f 2301_au1.sql | tr "\t" ";" > 2301_au1.txt
hive执行sql文件,并将\t
替换为;
,结果输出至指定txt文件。
ps -ef | grep 进程关键字
查找指定进程的PID。
kill -9 PID
杀死进程,PID为进程ID。