Seite 1 von 24 12311 ... LetzteLetzte
Ergebnis 1 bis 10 von 239
  1. #1
    Anwender
    Registriert seit
    29.12.2008
    Beiträge
    1

    Rotes Gesicht DS herunterfahren wenn kein Client mehr vorhanden

    Hallo,

    ich habe eine DS209 und möchte diese immer abends automatisch herunterfahren lassen.
    Es war nur hin und wieder ärgerlich wenn ich noch am Film schauen war, oder ein PC noch an war, und sich die DS dann still und leise verabschiedet hat.

    Ich starte nun Abends über die Crontab alle 30 Minuten ein Script welches meine PC´s und Medienplayer anpingt, und somit feststellt ob noch ein Gerät an ist. Sollte dies nicht der Fall sein, wird der Shutdown durchgeführt.

    Da ich mit Linux und Scripten nicht so der Kenner bin, stell ich das ganze mal hier rein, vielleicht gibts ja noch Ideen das ganze zu verbessern und auszubauen.
    Angehängte Dateien Angehängte Dateien

  2. #2
    Anwender
    Registriert seit
    16.09.2009
    Beiträge
    20

    Standard

    Danke, das werde ich mir mal genauer anschauen

  3. #3

    Standard leicht überarbeitet

    Hallo,
    habe die Idee dankend aufgenommen und etwas modifiziert.
    Falls ein Rechnerneustart eines der zu überwachenden Rechner durchgeführt wird soll das Nas natürlich in dieser Zeit nicht herunterfahren. Den IP Adresseneingabe der Hosts habe ich etwas vereinfacht. Der erste Teil des Subnetzes wird automatisiert ermittelt und mann mus nur noch den letzten Block der IP Adressen definieren. Bsp. 192.168.0.5 - 192.168.0.200 Konfiguration: 5 = _IP_START; 200 = _IP_ENDE; _SLEEP = zeit die zwischen 2 checks gewartet wird in Sekunden.
    Das Subnetz 192.168.0. wird automatisch ermittelt, muss also nicht festgelegt werden und so funktioniert das Script auch weiter falls mann sein Netz mal ändert.
    __________________________
    Synology DS110j mit WD15EADS 1,5TB

    Angehängte Dateien Angehängte Dateien
    Geändert von jahlives (09.01.2010 um 01:20 Uhr) Grund: Werbelink entfernt

  4. #4
    Anwender
    Registriert seit
    16.09.2009
    Beiträge
    20

    Standard

    Auch ich hab das Script etwas verändert - es wird noch bevor die Diskstation ausgeschalten wird geprüft ob eine Sicherung läuft.

    Code:
    #!/bin/sh                                                                                                                
                                                                                                                             
    # List of Hosts to check                                                                                                 
    HOSTS="192.168.23.111 192.168.23.112"                                                                                    
    LOGFILE=/var/log/shutdown.log                                                                                            
                                                                                                                             
    log() {                                                                                                                  
            echo `date +%c` $1 >> $LOGFILE                                                                                  
    }                                                                                                                        
                                                                                                                             
    log "try to shutdown"                                                                                                    
                                                                                                                             
    if [ ! "$(pidof synolocalbkp)" ]; then                                                                                   
            ONLINE=0                                                                                                         
                                                                                                                             
            for host in $HOSTS ; do                                                                                          
                    if ping -c 3 -w 1 $host > /dev/null; then                                                                
                            ONLINE=1                                                                                         
                            log "$host isn't offline"                                                                        
                    fi                                                                                                       
            done                                                                                                             
                                                                                                                             
            if [ $ONLINE -eq 0 ]; then                                                                                       
                    log "shutdown Diskstation"                                                                               
                    /sbin/poweroff                                                                                         
            fi                                                                                                               
    fi
    Der Eintrag für Cron lautet:
    Code:
    */15	23-3	*	*	*	root	/bin/sh /root/customshutdown.sh
    Was ich gerne noch einbauen würde wäre eine Prüfung ob eine AFP-Freigabe aktiv benutzt wird. Über netstat kann man ja zumindest schon mal herausfinden das der afpd angesprochen wird aber leider kann man nicht sehen ob die Freigabe nur eingehängt ist oder ob auch wirklich noch Daten fließen. Würde das Ganze für meinen Mediacenter-MacMini brauchen der rund um die Uhr läuft.

  5. #5
    Moderator Avatar von jahlives
    Registriert seit
    19.08.2008
    Beiträge
    18.237
    Blog-Einträge
    20

    Standard

    Ich würde deinen Code noch in eine Schleife packen. Wenn das Synobkp noch läuft soll die Schleife einfach x-Sekunden warten (sleep) und dann erneut probieren ob runtergefahren werden kann.
    Du könntest ggf die verschiedenen Prozesse auf Last prüfen, um festzustellen, dass wirklich keine Daten mehr fliessen
    Was im Leben zählt, ist nicht, dass wir gelebt haben. Sondern, wie wir das Leben von anderen verändert haben (Rolihlahla "Nelson" Mandela 1918-2013)

  6. #6
    Anwender
    Registriert seit
    16.09.2009
    Beiträge
    20

    Standard

    Durch den cronjob wird doch das Script alle 15 Minuten im Zeitfenster von 23 bis 3 Uhr gestartet

  7. #7
    Moderator Avatar von jahlives
    Registriert seit
    19.08.2008
    Beiträge
    18.237
    Blog-Einträge
    20

    Standard

    Zitat Zitat von user123 Beitrag anzeigen
    Durch den cronjob wird doch das Script alle 15 Minuten im Zeitfenster von 23 bis 3 Uhr gestartet
    Sorry den cronjob habe ich "übersehen" Ich dachte es wird nur einmal aufgerufen. So funzt es natürlich auch
    Was im Leben zählt, ist nicht, dass wir gelebt haben. Sondern, wie wir das Leben von anderen verändert haben (Rolihlahla "Nelson" Mandela 1918-2013)

  8. #8
    Anwender
    Registriert seit
    01.03.2009
    Beiträge
    928

    Standard

    Nur so als Idee zur Anregung:

    Erweiterung des Skripts auf Prüfung der Aktivität der Downloadstation also Last auf amule und rtorrent.

    Ich weiß leider nicht ob die Last der Prozesse zuverlässig zu ermitteln ist.
    DS109 mit WD10EADS | externes Backup über eSATA auf Verbatim 2 TB | LevelOne GSW-0807 8-Port Gigabit Switch
    Fritz!Box 7490 | 1&1 Audiocenter v1 (Sagem My Web Tuner 500) | Terratec NOXON iRadio Cube | gesamte Topologie | Windows 10 Pro 64 bit

  9. #9
    Anwender
    Registriert seit
    16.09.2009
    Beiträge
    20

    Standard

    Habe das Script noch einmal etwas umgebastelt. Es prüft nun ob auf meinem Mediacenter MacMini Plex läuft. Die abzuspielende Filmdateien liegen auf der Diskstation weswegen es vorallem am Wochenende sehr ungünstig ist wenn sie abends einfach herunterfährt.

    Code:
    #!/bin/sh                                                                                                                                              
                                                                                                                                                           
    # List of Hosts to check                                                                                                                               
    HOSTS="192.168.23.111 192.168.23.112"                                                                                                                  
    MEDIACENTER="192.168.23.10"                                                                                                                            
    MEDIACENTERUSER="user123"                                                                                                                               
    LOGFILE=/var/log/shutdown.log                                                                                                                          
                                                                                                                                                           
                                                                                                                                                           
    log() {                                                                                                                                                
            echo `date +%c` $1 >> $LOGFILE                                                                                                                 
    }                                                                                                                                                      
                                                                                                                                                           
    log "try to shutdown"                                                                                                                                  
                                                                                                                                                           
    ONLINEMC=0                                                                                                                                             
    if [ "$(ping -c 3 -w 1 $MEDIACENTER)" > /dev/null ]; then                                                                                              
            if [ "$(ssh $MEDIACENTERUSER@$MEDIACENTER ps aux | grep Plex.app)" ]; then                                                                     
                    ONLINEMC=1                                                                                                                             
                    log "Mediacenter is running"                                                                                                           
            fi                                                                                                                                             
    fi                                                                                                                                                     
                                                                                                                                                           
    ONLINE=0                                                                                                                                               
    if [ ! "$(pidof synolocalbkp)" ] && [ $ONLINEMC -eq 0 ]; then                                                                                          
            for host in $HOSTS ; do                                                                                                                        
                    if [ "$(ping -c 3 -w 1 $host)" > /dev/null ]; then                                                                                     
                            ONLINE=1                                                                                                                       
                            log "$host isn't offline"                                                                                                      
                    fi                                                                                                                                     
            done                                                                                                                                           
                                                                                                                                                           
            if [ $ONLINE -eq 0 ]; then                                                                                                                     
                    log "shutdown Diskstation"                                                                                                             
                    /sbin/poweroff                                                                                                                       
            fi                                                                                                                                             
    fi

  10. #10
    Anwender
    Registriert seit
    16.09.2009
    Beiträge
    20

    Standard

    In dem zuletzt geposteten Script ist ein Fehler und ich habe leider keine Möglichkeit gesehen den Post zu bearbeiten.

    Die Zeilen der Ping-Befehle in den IF-Abfragen werden von
    Code:
    if [ "$(ping -c 3 -w 1 $host)" > /dev/null ]; then
    wieder zurück zu
    Code:
    if ping -c 3 -w 1 $host > /dev/null; then
    geändert. Die erste Variante gibt immer nur FALSE zurück.

    Die korrigierte Version sieht so aus:
    Code:
    #!/bin/sh
    
    # List of Hosts to check
    HOSTS="192.168.23.111 192.168.23.112"
    MEDIACENTER="192.168.23.10"
    MEDIACENTERUSER="user123"
    LOGFILE=/var/log/shutdown.log
    
    
    log() {
    	echo `date +%c` $1 >> $LOGFILE
    }
    
    log "try to shutdown"
    
    ONLINEMC=0
    if ping -c 3 -w 1 $MEDIACENTER > /dev/null; then
    	if [ "$(ssh $MEDIACENTERUSER@$MEDIACENTER ps aux | grep Plex.app)" ]; then
    		ONLINEMC=1
    		log "Mediacenter is running"
    	fi
    fi
    
    ONLINE=0
    if [ ! "$(pidof synolocalbkp)" ] && [ $ONLINEMC -eq 0 ]; then
    	for host in $HOSTS ; do
    		if ping -c 3 -w 1 $host > /dev/null; then
    			ONLINE=1
    			log "$host isn't offline"
    		fi
    	done
    
    	if [ $ONLINE -eq 0 ]; then
    		log "shutdown Diskstation"
    		/sbin/poweroff
    	fi
    fi

Seite 1 von 24 12311 ... LetzteLetzte

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 17.09.2009, 11:19
  2. DS-106e kein WebIF https vorhanden ?
    Von Schnufi im Forum Installation und Konfiguration allgemein
    Antworten: 0
    Letzter Beitrag: 11.06.2009, 12:49
  3. Antworten: 5
    Letzter Beitrag: 27.09.2008, 15:16
  4. music-Ordner nicht mehr vorhanden
    Von Macstaub im Forum Installation und Konfiguration allgemein
    Antworten: 2
    Letzter Beitrag: 26.08.2008, 12:29
  5. Kein zugriff mehr auf die Website wenn Jumbo Frame aktiviert ist.
    Von Spektrum im Forum Netzwerkkonfiguration
    Antworten: 5
    Letzter Beitrag: 27.12.2007, 22:34

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •