美文网首页
shell参考示例

shell参考示例

作者: 风起依旧 | 来源:发表于2020-03-09 19:55 被阅读0次
获取容器状态
portal_id=$(/usr/local/bin/docker ps -q -f name=portal)

if [ -z "$portal_id" ]; then
    echo "portal container is died " >> /tmp/check_portal.log
    if [ -f /dragonball/portal1/log/portal_flag ];then
        echo "because it is being restarted by user" >> /tmp/check_portal.log
    else
        echo "portal container need to be pull up by scripts" >> /tmp/check_portal.log
        if ps -ef|grep restart_portal.sh |grep -v 'grep' > /dev/null 2>&1;then
                echo "restart_portal.sh is running" >> /tmp/check_portal.log
        else
            echo "restart_portal ${portal_ip}" >> /tmp/check_portal.log
            restart_portal ${portal_ip}
            echo "restart_portal ${portal_ip} finished" >> /tmp/check_portal.log
        fi
    fi
else
    echo "protal container [$portal_id] is alive, nothing to do." >> /tmp/check_portal.log
fi

内存清理

used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log

if [ $free -le 1024 ] ; then
        sync && echo 1 > /proc/sys/vm/drop_caches
        sync && echo 2 > /proc/sys/vm/drop_caches
        sync && echo 3 > /proc/sys/vm/drop_caches
        echo "OK" >> /var/log/mem.log
else
        echo "Not required" >> /var/log/mem.log
fi

sed替换
 sed -i "s/\<localip\>/$this_ip/"  $home_path/dragonball/base/tools/watcher.sh
获取进程pid
ntpd_pid=$(ps -ef | grep "ntpd" | grep -v grep | awk '{print $2}') > /dev/null
重启服务
 if [ "$ntpd_pid" == "" ];then
        service ntpd restart > /dev/null 2>&1
 fi


获取tokens
ip=$1
curl -X GET "http://${ip}:8500/v1/kv/dragonball/tokens/${ip}" >/tmp/token_temp 2>/dev/null
token_=$(awk -F, '{print $4}' /tmp/token_temp | cut -d\" -f4)
token=$(echo $token_ | base64 -d)

echo "'http://${ip}:8888/v1/container/start' -d 'containerName=portal1&token=$token'" >> /tmp/check_portal.log
curl -X POST "http://${ip}:8888/v1/container/start" -d "containerName=portal1&token=${token}" -v

实现大段文本输入
cat >&/etc/ntp.conf <<EOF
driftfile /var/lib/ntp/drift

restrict 127.0.0.1
restrict ::1
server 127.127.1.0
fudge 127.127.1.0 stratum 8
server portal_ip prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
EOF
端口测试
result=`echo -e "\n" | telnet $IPADDR $PORT 2>/dev/null | grep Connected | wc -l`
 
if [ $result -eq 1 ]; then
    echo "Network is Open."
else
    echo "Network is Closed."
fi

相关文章

网友评论

      本文标题:shell参考示例

      本文链接:https://www.haomeiwen.com/subject/qwaudhtx.html