update backup cron bug

This commit is contained in:
Parsa Nazer
2025-02-25 00:00:29 +03:30
parent 6c68d3f4b8
commit 6649f5eecb
3 changed files with 22 additions and 15 deletions
+14 -6
View File
@@ -1,9 +1,16 @@
#!/bin/sh
. /etc/profile
echo "Cron job triggered at $(date)" >> /var/log/cron/cron.log
echo 'started the backup'
export PGPASSWORD=$PG_PASSWORD
# Load environment variables
. /etc/profile
# Debugging output
echo "Cron environment:" >> /var/log/cron/cron.log
env >> /var/log/cron/cron.log
echo "Starting backup at $(date)" >> /var/log/cron/cron.log
export PGPASSWORD=$PG_PASSWORD
TELEGRAM_API="https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
@@ -14,7 +21,7 @@ ZIP_FILE="backup_${TIMESTAMP}.zip"
pg_dump -h $PG_HOST -p $PG_PORT -U $PG_USER -d $PG_DATABASE -w > /backups/$BACKUP_FILE
if [ $? -ne 0 ]; then
echo "Backup failed!"
echo "Backup failed!" >> /var/log/cron/cron.log
exit 1
fi
@@ -24,4 +31,5 @@ curl -F chat_id=$TELEGRAM_CHAT_ID \
$TELEGRAM_API
ls -t /backups/*.zip | tail -n +4 | xargs rm -f
ls -t /backups/*.sql | tail -n +4 | xargs rm -f
ls -t /backups/*.sql | tail -n +4 | xargs rm -f
echo "Backup completed at $(date)" >> /var/log/cron/cron.log
-5
View File
@@ -1,6 +1 @@
# Add this line for environment variables
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Schedule (runs every minute for testing)
* * * * * /app/backup.sh >> /var/log/cron/cron.log 2>&1
+8 -4
View File
@@ -1,16 +1,20 @@
FROM alpine:3.19
RUN apk add --no-cache postgresql-client curl zip tzdata cron
RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime
RUN mkdir -p /var/log/cron
RUN mkdir -p /app /var/log/cron
WORKDIR /app
COPY backup.sh .
COPY crontab /etc/crontabs/root
RUN chmod +x backup.sh && \
chmod 0644 /etc/crontabs/root && \
touch /var/log/cron/cron.log
touch /var/log/cron/cron.log && \
chmod 666 /var/log/cron/cron.log
CMD ["sh", "-c", "crond -l 8 -L /var/log/cron/cron.log -f"]
RUN printenv | grep -E 'PG_|TELEGRAM_' >> /etc/environment
CMD ["sh", "-c", "crond -f -l 0 -L /var/log/cron/cron.log"]