Files
v2realbot/_run_scheduler.sh
2024-02-22 23:05:49 +07:00

51 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Approach: (https://chat.openai.com/c/43be8685-b27b-4e3b-bd18-0856f8d23d7e)
# cron runs this script every minute New York in range of 9:20 - 16:20 US time
# Also this scripts writes the "heartbeat" message to log file, so the user knows
#that cron is running
# Installation steps required:
#chmod +x run_scheduler.sh
#install tzdata package: sudo apt-get install tzdata
#crontab -e
#CRON_TZ=America/New_York
# * 9-16 * * 1-5 /home/david/v2trading/run_scheduler.sh
#
# (Runs every minute of every hour on every day-of-week from Monday to Friday) US East time
# Path to the Python script
PYTHON_SCRIPT="v2realbot/scheduler/scheduler.py"
# Log file path
LOG_FILE="job.log"
# Timezone for New York
TZ='America/New_York'
NY_DATE_TIME=$(TZ=$TZ date +'%Y-%m-%d %H:%M:%S')
echo "NY_DATE_TIME: $NY_DATE_TIME"
# Check if log file exists, create it if it doesn't
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
fi
# Check the last line of the log file
LAST_LINE=$(tail -n 1 "$LOG_FILE")
# Cron trigger message
CRON_TRIGGER="Cron trigger: $NY_DATE_TIME"
# Update the log
if [[ "$LAST_LINE" =~ "Cron trigger:".* ]]; then
# Replace the last line with the new trigger message
sed -i '' '$ d' "$LOG_FILE"
echo "$CRON_TRIGGER" >> "$LOG_FILE"
else
# Append a new cron trigger message
echo "$CRON_TRIGGER" >> "$LOG_FILE"
fi
# FOR DEBUG - Run the Python script and append output to log file
python3 "$PYTHON_SCRIPT" >> "$LOG_FILE" 2>&1