编辑: /var/spool/cron
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
* */4 * * * /bin/sh /data/www/test/crontab_ffmpeg.sh
linux下输入:crontab -l
查看任务是否启动
基本格式 :
* * * * * command分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
ffmpegctrl.sh脚本:
#!/bin/bash
echo "----------------"
#参数帮助文档
help()
{
echo "this is cmd help."
echo "1) -start start ffmpegs."
echo "2) -stop stop ffmpegs."
echo "3) -restart restart ffmpegs."
echo "4) -delfile delete ts file"
}
# 停止ffmpeg
stopffmpegs()
{
pids=$( ps -e | grep -w 'ffmpeg' | awk '{print $1}')
echo ${pids[@]}
for pid in ${pids[@]}; do
echo "Killing process[pid = $pid]... ..."
(kill -9 $pid)
done
}
# 启动ffmpeg
startffmpegs()
{
files=("./ahtv.sh" "./bjtv.sh" "./hntv.sh" "./jstv.sh" "./sctv.sh" "./sdtv.sh" "./sxtv.sh" "./zjtv.sh")
for file in ${files[@]}
do
echo "start file:$file"
chmod +x $file
(nohup $file &)
done
}
# 重启ffmpeg
restartffmpegs()
{
stopffmpegs;
startffmpegs;
}
#删除目录下ts文件
function deletefiles()
{
for file in ` ls $1 `
do
if [ -d $1"/"$file ]
then
deletefiles $1"/"$file
elif [ ${file##*.} == "ts" ]
then
rm -rf $1"/"$file
echo "rm file:$1"/"$file"
fi
done
}
varloop=0
while [ -n "$1" ]
do
if [[ $varloop -gt 10 ]]; then
exit 0
else
((varloop++))
fi
case $1 in
-h)
echo "function help is called"
help;shift;;
-start)
echo "-start"
startffmpegs
shift;
;;
-stop)
echo "-stop"
stopffmpegs
shift;
;;
-restart)
echo "-restart"
stopffmpegs;
startffmpegs;
shift;
;;
-delfile)
deletefiles $2
echo "delete files1: $2"
shift 2;
;;
-*)
echo "error: no such option $1. -h for help";
exit 1;;
*)
break;;
esac
done
echo "----------------"