notebook
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# Wrapper for the email pipeline. Calls Python wrapper inside python-runner
|
||||
# container. Logs to dated file. Cleans up logs older than 30 days.
|
||||
#
|
||||
# Install via User Scripts plugin or /etc/cron.d/email_pipeline:
|
||||
# 0 6,18 * * * /mnt/user/Scripts/run_pipeline.sh
|
||||
# ============================================================================
|
||||
|
||||
set -u
|
||||
|
||||
LOG_DIR="/mnt/user/Scripts/logs"
|
||||
TIMESTAMP=$(date +%Y%m%d_%H%M)
|
||||
LOG_FILE="${LOG_DIR}/pipeline_${TIMESTAMP}.log"
|
||||
LATEST_LINK="${LOG_DIR}/pipeline_latest.log"
|
||||
RETENTION_DAYS=30
|
||||
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
||||
echo "=== Email pipeline run @ $(date '+%Y-%m-%d %H:%M:%S') ===" >> "$LOG_FILE"
|
||||
|
||||
# Make sure the container is running
|
||||
if ! docker inspect -f '{{.State.Running}}' python-runner 2>/dev/null | grep -q true; then
|
||||
echo "ERROR: python-runner container is not running" >> "$LOG_FILE"
|
||||
docker start python-runner >> "$LOG_FILE" 2>&1 || exit 1
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
docker exec python-runner python /scripts/0_run_pipeline_v1.0.py --quiet >> "$LOG_FILE" 2>&1
|
||||
RET=$?
|
||||
|
||||
echo "" >> "$LOG_FILE"
|
||||
echo "=== Wrapper finished @ $(date '+%Y-%m-%d %H:%M:%S') exit=$RET ===" >> "$LOG_FILE"
|
||||
|
||||
# Update "latest" symlink for easy tailing
|
||||
ln -sf "$LOG_FILE" "$LATEST_LINK"
|
||||
|
||||
# Cleanup logs older than RETENTION_DAYS
|
||||
find "$LOG_DIR" -name 'pipeline_*.log' -type f -mtime +${RETENTION_DAYS} -delete
|
||||
|
||||
exit $RET
|
||||
Reference in New Issue
Block a user