LSB-Init-Skript wird nicht ausgeführt

268
marekful

Ich habe ein LSB-kompatibles Init-Skript erstellt, das ich verwenden möchte, um einige Protokolldateien an einen Amazon S3-Bucket zu senden, wenn das System ausfällt, aber nicht ausgeführt wird.

Hier ist der Skriptinhalt in Datei /etc/init.d/push-apache-logs-to-s3.sh(ich habe den Markennamen meines Kunden durch XXX ersetzt):

#! /bin/sh ### BEGIN INIT INFO # Provides: push-apache-logs-to-s3 # Required-Start:  # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Push Apache log files to S3 # Description:  ### END INIT INFO  PATH=/sbin:/usr/sbin:/bin:/usr/bin  . /lib/lsb/init-functions  do_stop () { LOG_DIR=/var/log/apache2/ BACKUP_DEST=s3://XXX-backups/api-logs EC2_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`  echo -n "Entering log directory..."  if cd $LOG_DIR then echo "OK" else echo echo "Cannot change directory... BACKUP ABORTED!" echo exit 3 fi  echo -n "Pushing log files to S3..."  # push log files if s3cmd put XXX-api_access.log* $BACKUP_DEST/$EC2_ID/ >/dev/null then echo "OK" else echo echo "LOG FILES COULD NOT BE MOVED TO S3! BAKCUP NOT COMPLETE!" echo exit 5 fi  echo "*** Backup finished at " `date` echo "-----------------------------------------------"  exit 0 }  case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac  : 

Hier ist der Befehl, mit dem ich ihn installiert habe:

sudo update-rc.d push-apache-logs-to-s3.sh start 01 2 3 4 5 . stop 01 0 1 6 . 

welche Ausgabe lieferte:

 Adding system startup for /etc/init.d/push-apache-logs-to-s3.sh ... /etc/rc0.d/K01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc1.d/K01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc6.d/K01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc2.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc3.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc4.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc5.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh 

Das Skript verwendet, s3cmdwas auf dem System installiert und konfiguriert ist. s3cmdist in /usr/bin/dem wie PATHim Skript definiert ist.

Wenn ich das Skript ausführt sudo ./push-apache-logs-to-s3.sh stop, erledigt es die Arbeit.

Irgendwelche Vorschläge, was ist los?

0
Bitte nicht erneut veröffentlichen, dies ist im Wesentlichen die gleiche Frage (http://superuser.com/q/617916/151431). Fügen Sie der ursprünglichen Frage bitte die neuen Informationen hinzu, ich werde meine [Antwort] (http://superuser.com/a/617931/151431) dort mit dem aktualisieren, was (ich denke) Ihr Problem hier ist. terdon vor 10 Jahren 0
Sie könnten versuchen, alle Ihre Ausgaben in eine Protokolldatei umzuleiten und zu sehen, ob etwas geschrieben wird. Es gibt Ihnen einen besseren Einblick, wo es versagt. GnP vor 10 Jahren 1
@terdon Ich habe einen neuen Beitrag erstellt, weil sich die Situation völlig geändert hat. Jetzt habe ich ein LSB-Skript, während beim vorigen. Frage Ich hatte gerade ein "pure bash" Skript. marekful vor 10 Jahren 0
Außerdem brachte mich keine der Antworten für den anderen Beitrag einer Lösung näher. marekful vor 10 Jahren 0
Ich weiß, es ist im Allgemeinen vorzuziehen, keine zusätzlichen Fragen hinzuzufügen. Sehen Sie meine aktualisierte Antwort auf Ihre ursprüngliche Frage. Hilft das? terdon vor 10 Jahren 0

0 Antworten auf die Frage