Untitled
unknown
powershell
3 years ago
2.8 kB
8
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
fiEditor is loading...