Untitled

 avatar
unknown
powershell
2 years ago
2.8 kB
5
Indexable
#!/bin/bash
# Check if webserver is running
timestamp=$(date +%Y%m%d%H%M%S)
WEBSERVER_RUNNING=false
if  ps aux | grep airflow_webserver > /dev/null
then
  WEBSERVER_RUNNING=true
fi
# Check if scheduler is running
SCHEDULER_RUNNING=false
if  ps aux | grep airflow_scheduler > /dev/null
then
  SCHEDULER_RUNNING=true
fi
# Start both webserver and scheduler if they are down
if [ "$WEBSERVER_RUNNING" = false ] && [ "$SCHEDULER_RUNNING" = false ]
then
  echo "Both webserver and schduler is down...starting both webserver and schduler"
  file1 = "airflow-scheduler.err"
  cp "$file1" "${file1}_${timestamp}.bak"
  file2 = "airflow-scheduler.log"
  cp "$file2" "${file2}_${timestamp}.bak"
  file3 = "airflow-scheduler.out"
  cp "$file3" "${file3}_${timestamp}.bak"
  file4 = "airflow-scheduler.pid"
  cp "$file4" "${file4}_${timestamp}.bak"
  file5 = "airflow-webserver.err"
  cp "$file5" "${file5}_${timestamp}.bak"
  file6 = "airflow-webserver.log"
  cp "$file6" "${file6}_${timestamp}.bak"
  file7 = "airflow-webserver.out"
  cp "$file7" "${file7}_${timestamp}.bak"
  file8 = "airflow-webserver.pid"
  cp "$file8" "${file8}_${timestamp}.bak"
  # Start both webserver and scheduler
  airflow webserver -D
  airflow scheduler -D
fi
# Start scheduler if webserver is up and scheduler is down
if [ "$WEBSERVER_RUNNING" = true ] && [ "$SCHEDULER_RUNNING" = false ]
then
  echo "starting schduler only"
  file1 = "airflow-scheduler.err"
  cp "$file1" "${file1}_${timestamp}.bak"
  file2 = "airflow-scheduler.log"
  cp "$file2" "${file2}_${timestamp}.bak"
  file3 = "airflow-scheduler.out"
  cp "$file3" "${file3}_${timestamp}.bak"
  file4 = "airflow-scheduler.pid"
  cp "$file4" "${file4}_${timestamp}.bak"
  # Start the scheduler
    airflow scheduler -D
fi
# Start webserver if webserver is down and scheduler is up
if [ "$WEBSERVER_RUNNING" = false ] && [ "$SCHEDULER_RUNNING" = true ]
then
echo "starting webserver"
  file5 = "airflow-webserver.err"
  cp "$file5" "${file5}_${timestamp}.bak"
  file6 = "airflow-webserver.log"
  cp "$file6" "${file6}_${timestamp}.bak"
  file7 = "airflow-webserver.out"
  cp "$file7" "${file7}_${timestamp}.bak"
  file8 = "airflow-webserver.pid"
  cp "$file8" "${file8}_${timestamp}.bak"
  # Start the webserver
   airflow webserver -D
fi
# Restart both webserver and scheduler if they are both up
if [ "$WEBSERVER_RUNNING" = true ] && [ "$SCHEDULER_RUNNING" = true ]
then
  echo "restarting both webserver and schduler"
  # Stop and restart both webserver and scheduler
  workers=$(ps aux | grep airflow | grep worker | awk '{print $2}')
  for worker in $workers
  do
	kill $worker
done
  airflow scheduler --daemon stop
  airflow webserver -D
  airflow scheduler -D
fi
Editor is loading...