shell 脚本获取redis 指定hash 值

 记录第一次用shell 脚本来获取redis 的值 

#!/bin/bash
key="reids的集合名称"
value="redis集合中的key名"  #如果是string 类集合的话用get ${key} hash 用hget 
redisTime=$(redis-cli -h redis链接地址 -p 端口号 hget ${key} ${value})
echo ${redisTime}

cueeentTime30=$(date -d "30 minute ago" +"%Y-%m-%d %H:%M:%S")
echo $cueeentTime30
spark_task() {
/spark的安装绝对路径/bin/spark-submit --master yarn --deploy-mode cluster \
--name tools_comm \
--conf spark.port.maxRetries=200 \
--driver-cores 2 \
--driver-memory 2g \
--num-executors 2 --executor-cores 2 --executor-memory 2g \
--class com.casetek.app.Main \
 --queue q2 /******/***/*jar包的路径/*****.jar
}

seconds=$(date -d "${redisTime}" +"%s") #将时间转为时间戳来判断
second=$(date -d "${cueeentTime30}" +"%s")
echo $seconds  
ids=`yarn application -list | grep *spark的任务名称*| awk '{print $1}' | grep application_ `

echo "result: "$ids

while [ ${seconds} -lt ${second} ]
do 
	if [ -n "$ids" ];then
		echo "进程不为空,不执行.."

		else
		echo "进程不存在, 执行spark"
		spark_task
		sleep 1s	
redisTime=$(redis-cli -h redis链接地址 -p 6379 hget ${key} ${value})
cueeentTime30=$(date -d "30 minute ago" +"%Y-%m-%d %H:%M:%S")
seconds=$(date -d "${redisTime}" +"%s")
second=$(date -d "${cueeentTime30}" +"%s")
echo ${redisTime}

	fi
done	

你可能感兴趣的:(redis,bash)