Hier ist der Inhalt von /etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /etc/network/if-up.d/sshstart
Und sshstart
ist ein Skript mit folgendem Inhalt:
curl something something darkside send a file over ftps in the background &
/usr/bin/autossh -M 0 -f -N -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -R 127.0.0.1:2005:127.0.0.1:22 -R 192.168.1.10:2006:192.168.2.110:1912 -L 127.0.0.1:5249:192.168.1.212:5249 username@17.16.15.2 -p 8080
Wenn der Computer neu gestartet wird, wird der curl
Befehl mehrmals ausgeführt, die Datei landet zwei- oder dreimal auf dem FTP-Server, und wenn ich mir die Prozesse ansehe, scheint es, als würden mehrere Instanzen von Autossh ausgeführt ... Ich bin mir nicht sicher, ob dies der Fall ist autossh macht Dinge oder nicht, aber Curl sollte die Datei auf keinen Fall mehrmals hochladen.
Meine Vermutung ist, dass das gesamte sshstart
Skript mehrmals ausgeführt wird, aber ich verstehe nicht warum.
Ich habe versucht, beim Booten nach Details zum Netzwerk-Setup-Prozess zu suchen, konnte jedoch nur Syntaxinformationen für die Schnittstellendatei finden.
Kann mir bitte jemand helfen?
Vielen Dank.
--- Bearbeiten ---
Wie unten vorgeschlagen, habe ich meine Schnittstellendatei wie folgt geändert (die leeren Zeilen über dem Post-Up entfernt):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /etc/network/if-up.d/sshstart
Und fügte die folgende Zeile zu sshstart hinzu:
echo $(date)>>/run/shm/sshstart.log
Hier ist der Inhalt von /run/shm/sshstart.log
nach einem Neustart:
Wed Oct 29 08:07:00 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Es wurde also 4 Mal ausgeführt :( Was ist los?
echo $(date)
ist etwas umständlich und indirekt. Könnte auch so buchstabieren wie date
. Ähnlich wie bei der nutzlosen Verwendung des Cat Award .