Add NAS daily email report wrapper
Prompts used since the previous commit: - Hoe regelen we het dagrapport? - Het rapport moet per email naar mij gestuurd worden. - hans@australius.nl - akkoord Special observations: - dagelijks_overzicht.py now supports --mail-to and sends zero-message reports. - QNAP plain deployment installs run_daily_report.sh with DAILY_REPORT_TO defaulting to hans@australius.nl. - verplaats_log.json remains modified from the user's run and was intentionally not staged.
This commit is contained in:
+21
-3
@@ -14,6 +14,7 @@ fi
|
||||
APP_USER="${APP_USER:-mailcat}"
|
||||
SERVICE_NAME="${SERVICE_NAME:-mailcat-sort-backup}"
|
||||
ACCOUNT="${ACCOUNT:-backup}"
|
||||
DAILY_REPORT_TO="${DAILY_REPORT_TO:-hans@australius.nl}"
|
||||
REMOTE_PATH="${REMOTE_PATH:-/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin}"
|
||||
SERVICE_MANAGER="${SERVICE_MANAGER:-systemd}"
|
||||
MAILCAT_HOME="${MAILCAT_HOME:-/share/homes/$APP_USER}"
|
||||
@@ -202,11 +203,27 @@ echo "logs: \$LOG_DIR"
|
||||
exit 1
|
||||
STATUS_SCRIPT
|
||||
|
||||
cat > /tmp/mailcat-daily-report.sh <<REPORT_SCRIPT
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
APP_DIR="$APP_DIR"
|
||||
ACCOUNT="$ACCOUNT"
|
||||
PYTHON="$PYTHON"
|
||||
LOG_DIR="$LOG_DIR"
|
||||
MAIL_TO="$DAILY_REPORT_TO"
|
||||
MKDIR="$MKDIR"
|
||||
|
||||
"\$MKDIR" -p "\$LOG_DIR"
|
||||
cd "\$APP_DIR"
|
||||
"\$PYTHON" "\$APP_DIR/dagelijks_overzicht.py" --account "\$ACCOUNT" --mail-to "\$MAIL_TO" >> "\$LOG_DIR/daily_report.out" 2>&1
|
||||
REPORT_SCRIPT
|
||||
|
||||
"$SUDO" "$INSTALL" -m 0755 /tmp/mailcat-start.sh "$APP_DIR/bin/start_mailcat.sh"
|
||||
"$SUDO" "$INSTALL" -m 0755 /tmp/mailcat-stop.sh "$APP_DIR/bin/stop_mailcat.sh"
|
||||
"$SUDO" "$INSTALL" -m 0755 /tmp/mailcat-status.sh "$APP_DIR/bin/status_mailcat.sh"
|
||||
"$SUDO" "$CHOWN" "$APP_USER:$APP_GROUP" "$APP_DIR/bin/start_mailcat.sh" "$APP_DIR/bin/stop_mailcat.sh" "$APP_DIR/bin/status_mailcat.sh"
|
||||
"$RM" -f /tmp/mailcat-start.sh /tmp/mailcat-stop.sh /tmp/mailcat-status.sh
|
||||
"$SUDO" "$INSTALL" -m 0755 /tmp/mailcat-daily-report.sh "$APP_DIR/bin/run_daily_report.sh"
|
||||
"$SUDO" "$CHOWN" "$APP_USER:$APP_GROUP" "$APP_DIR/bin/start_mailcat.sh" "$APP_DIR/bin/stop_mailcat.sh" "$APP_DIR/bin/status_mailcat.sh" "$APP_DIR/bin/run_daily_report.sh"
|
||||
"$RM" -f /tmp/mailcat-start.sh /tmp/mailcat-stop.sh /tmp/mailcat-status.sh /tmp/mailcat-daily-report.sh
|
||||
else
|
||||
"$SUDO" "$INSTALL" -m 0644 "$APP_DIR/systemd/mailcat-sort.service" "/etc/systemd/system/$SERVICE_NAME.service"
|
||||
"$SUDO" "$SED" -i \
|
||||
@@ -229,6 +246,7 @@ echo "Create/check $APP_DIR/config.json, then run:"
|
||||
if [ "$SERVICE_MANAGER" = "plain" ]; then
|
||||
echo " sudo -u $APP_USER $APP_DIR/bin/start_mailcat.sh"
|
||||
echo " sudo -u $APP_USER $APP_DIR/bin/status_mailcat.sh"
|
||||
echo " sudo -u $APP_USER $APP_DIR/bin/run_daily_report.sh"
|
||||
echo " tail -f $LOG_DIR/sort_mail_daemon.log"
|
||||
else
|
||||
echo " sudo systemctl start $SERVICE_NAME.service"
|
||||
@@ -239,5 +257,5 @@ REMOTE
|
||||
scp "$ARCHIVE" "$REMOTE_USER@$REMOTE_HOST:/tmp/mailcat-deploy.tar.gz"
|
||||
scp "$REMOTE_SCRIPT" "$REMOTE_USER@$REMOTE_HOST:/tmp/mailcat-remote-deploy.sh"
|
||||
|
||||
REMOTE_COMMAND=$(printf "APP_USER=%q APP_DIR=%q SERVICE_NAME=%q ACCOUNT=%q REMOTE_PATH=%q SERVICE_MANAGER=%q MAILCAT_HOME=%q STATE_DIR=%q LOG_DIR=%q RUN_DIR=%q PID_FILE=%q PYTHON=%q SUDO=%q USERADD=%q INSTALL=%q SED=%q TAR=%q MKDIR=%q CHOWN=%q CHMOD=%q RM=%q SYSTEMCTL=%q /bin/sh /tmp/mailcat-remote-deploy.sh" "$APP_USER" "$APP_DIR" "$SERVICE_NAME" "$ACCOUNT" "$REMOTE_PATH" "$SERVICE_MANAGER" "$MAILCAT_HOME" "$STATE_DIR" "$LOG_DIR" "$RUN_DIR" "$PID_FILE" "$PYTHON" "$SUDO" "$USERADD" "$INSTALL" "$SED" "$TAR" "$MKDIR" "$CHOWN" "$CHMOD" "$RM" "$SYSTEMCTL")
|
||||
REMOTE_COMMAND=$(printf "APP_USER=%q APP_DIR=%q SERVICE_NAME=%q ACCOUNT=%q DAILY_REPORT_TO=%q REMOTE_PATH=%q SERVICE_MANAGER=%q MAILCAT_HOME=%q STATE_DIR=%q LOG_DIR=%q RUN_DIR=%q PID_FILE=%q PYTHON=%q SUDO=%q USERADD=%q INSTALL=%q SED=%q TAR=%q MKDIR=%q CHOWN=%q CHMOD=%q RM=%q SYSTEMCTL=%q /bin/sh /tmp/mailcat-remote-deploy.sh" "$APP_USER" "$APP_DIR" "$SERVICE_NAME" "$ACCOUNT" "$DAILY_REPORT_TO" "$REMOTE_PATH" "$SERVICE_MANAGER" "$MAILCAT_HOME" "$STATE_DIR" "$LOG_DIR" "$RUN_DIR" "$PID_FILE" "$PYTHON" "$SUDO" "$USERADD" "$INSTALL" "$SED" "$TAR" "$MKDIR" "$CHOWN" "$CHMOD" "$RM" "$SYSTEMCTL")
|
||||
ssh -tt "$REMOTE_USER@$REMOTE_HOST" "$REMOTE_COMMAND"
|
||||
|
||||
Reference in New Issue
Block a user