Untitled
unknown
plain_text
2 years ago
3.8 kB
5
Indexable
#!/bin/bash host="localhost" port=11400 webserver_status=0 scheduler_status=0 timestamp=$(date +%Y%m%d%H%M%S) airflow_home=$AIRFLOW_HOME if ps -ef | grep webserver | grep -v grep > /dev/null; then webserver_status=1 echo "Webserver is Up" else webserver_status=0 echo "Webserver is Down" fi if ps -ef | grep scheduler | grep -v grep > /dev/null; then scheduler_status=1 echo "scheduler is Up" else scheduler_status=0 echo "scheduler is Down" fi #file names for backup scheduler.err="airflow-scheduler.err" scheduler.log="airflow-scheduler.log" scheduler.out="airflow-scheduler.out" webserver.err="airflow-webserver.err" webserver.log="airflow-webserver.log" webserver.out="airflow-webserver.out" if [ $webserver_status -eq 1 ] && [ $scheduler_status -eq 1 ]; then echo "Both webserver and scheduler are up...killing processes and restarting both services" pkill airflow airflow webserver -D airflow scheduler -D fi if [ $webserver_status -eq 0 ] && [ $scheduler_status -eq 0 ]; then echo "Both webserver and scheduler are down...starting both webserver and scheduler" if [ -f "$airflow_home/airflow-scheduler.err" ]; then cp "$scheduler.err" "${scheduler.err}_${timestamp}.bak" else echo "$scheduler.err file not found" fi if [ -f "$airflow_home/airflow-scheduler.log" ]; then cp "$scheduler.log" "${scheduler.log}_${timestamp}.bak" else echo "$scheduler.log file not found" fi if [ -f "$airflow_home/airflow-scheduler.out" ]; then cp "$scheduler.out" "${scheduler.out}_${timestamp}.bak" else echo "$scheduler.out file not found" fi if [ -f "$airflow_home/airflow-webserver.err" ]; then cp "$webserver.err" "${webserver.err}_${timestamp}.bak" else echo "$webserver.err file not found" fi if [ -f "$airflow_home/airflow-webserver.log" ]; then cp "$webserver.log" "${webserver.log}_${timestamp}.bak" else echo "$webserver.log file not found" fi if [ -f "$airflow_home/airflow-webserver.out" ]; then cp "$webserver.out" "${webserver.out}_${timestamp}.bak" else echo "$webserver.out file not found" fi airflow webserver -D airflow scheduler -D fi if [ $webserver_status -eq 1 ] && [ $scheduler_status -eq 0 ]; then echo "Webserver is up and scheduler is down...starting scheduler" if [ -f "$airflow_home/airflow-scheduler.err" ]; then cp "$scheduler.err" "${scheduler.err}_${timestamp}.bak" else echo "$scheduler.err file not found" fi if [ -f "$airflow_home/airflow-scheduler.log" ]; then cp "$scheduler.log" "${scheduler.log}_${timestamp}.bak" else echo "$scheduler.log file not found" fi if [ -f "$airflow_home/airflow-scheduler.out" ]; then cp "$scheduler.out" "${scheduler.out}_${timestamp}.bak" else echo "$scheduler.out file not found" fi airflow scheduler -D fi if [ $webserver_status -eq 0 ] && [ $scheduler_status -eq 1 ]; then echo "Webserver is down and scheduler is up...starting webserver" if [ -f "$airflow_home/airflow-webserver.err" ]; then cp "$webserver.err" "${webserver.err}_${timestamp}.bak" else echo "$webserver.err file not found" fi if [ -f "$airflow_home/airflow-webserver.log" ]; then cp "$webserver.log" "${webserver.log}_${timestamp}.bak" else echo "$webserver.log file not found" fi if [ -f "$airflow_home/airflow-webserver.out" ]; then cp "$webserver.out" "${webserver.out}_${timestamp}.bak" else echo "$webserver.out file not found" fi airflow webserver -D sleep 10 errors = $(cat $airflow_home/airflow_webserver.err) if [ -z "$errors" ]; then echo "Webserver has errors. Exiting..." fi exit 1 fi
Editor is loading...