Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Hardware>iMac geht nicht mehr in Ruhezustand

iMac geht nicht mehr in Ruhezustand

pfank14.02.1820:53
iMac mit 10.13.3 habe eine LaCie angeschlossen als Time Machine Backup. Hat bis jetzt problemlos funktioniert.
Seit ein paar Tagen geht der iMac nun aber nicht mehr in den Ruhezustand, immer wenn es soweit wäre springt die LaCie an, dass heisst alle paar Minuten beginnt die LaCie zu drehen. Am Setting habe ich nichts geändert. das Problem ist plötzlich aufgetaucht.
Hat jemand eine Idee?
0

Kommentare

Turbo
Turbo14.02.1821:00
Wird die LaCie vielleicht für Spotlight indiziert? Das kann je nach Größe dauern.
„Sei und bleibe höflich!“
-1
coffee
coffee14.02.1821:00


Versuch mal einen SMC-Reset.
„Simplicity is the ultimate Sophistication (Steve Jobs)“
-2
pfank14.02.1821:15
coffee
Versuch mal einen SMC-Reset.
Mein Problem erscheint nicht unter den gelisteten Problemen, werde es aber trotzdem versuchen.
+1
pfank14.02.1821:16
Turbo
Wird die LaCie vielleicht für Spotlight indiziert? Das kann je nach Größe dauern.
Nein wird sie nicht, sie ist von der suche ausgeschlossen.
+1
pfank14.02.1821:28
SMC-Reset hat nichts geändert.
Eigentlich müsste ich viel mehr schreiben, die LaCie geht nicht mehr in den Ruhezustand. Den Ruhezustand am iMac kann ich anstossen, Bildschirm stellt aus, dann nach etwa 20 Sekunden auch die LaCie sie dreht aber gleich wieder hoch. Ein Problem der LaCie?
0
pfank14.02.1821:50
Habe nun also den Text gemacht, und die LaCie abgehängt ist übrigens per Thunderbolt verbunden.
Der Ruhezustand des iMac funktioniert einwandfrei, aber die LaCie geht nicht mehr schlafen.

Hat jemand eine Idee und sorry, dass ich dies nicht bereits vorher getestet hatte.
+1
pfank14.02.1821:59
Es handelt sich übrigens um eine LaCie 6TB 2Big anfangs 2013 gekauft.
0
macbike6815.02.1801:49
Du könntest einmal im Programm "Aktivitätsanzeige" unter dem Reiter Energie schauen, ob dort evtl. eine App den Ruhezustand verhindert. Es gibt dort extra einen entsprechenden Tab dafür. Ich hatte es jetzt gerade, dass ein Hilfsprogramm von ChronoSync dort auftauchte und ich hatte ebenfalls Probleme mit dem Ruhezustand.

Zur Zeit beobachte ich noch ob dies die Lösung ist. Alternativ vielleicht probieren die Festplatte vor dem Ruhezustand manuell auszuwerfen.
0
Weia
Weia15.02.1802:24
pfank
Es handelt sich übrigens um eine LaCie 6TB 2Big anfangs 2013 gekauft.
Es hat 5 Jahre gedauert, bis Dein Produkt von LaCie zickt? Du Glücklicher!
„🦖The dinosaurs invented Jesus to test our confidence in science“
+1
iBert15.02.1805:11
Sind Deine Systemeinstellungen so wie auf diesem Screenshot?
Sollte eigentlich so funktionieren. (habe allerdings eine USB-Platte dran)
Manchmal hilft es auch diese Optionen zuerst aus- und dann wieder einzuschalten....


FF iBert
„Objektiv ist relativ, subjektiv gesehen.“
0
iBert15.02.1805:25
„Objektiv ist relativ, subjektiv gesehen.“
0
pfank15.02.1813:42
@ macbike68, @ iBert
Wie ich oben bereits beschrieben habe ist mein gewählter Titel leider irreführend.
Habe mittlerweile herausgefunden, dass es die LaCie sein muss die nicht mehr schlafen möchte.
Wenn ich die LaCie abhänge geht der iMac in den Ruhezustand, ja der Bildschirm geht auch schlafen wenn die LaCie dranhängt, nur die LaCie will nicht schlafen.
So helfen die Tipps leider nicht weiter.
Es ist mehr die Frage, ob sich an der LaCie noch was machen lässt?
-1
MikeMuc15.02.1814:32
pfank
steht irgendwo das der Tipp von iBert nur für interne Platten gilt? Probier es doch erstmal aus ob es hilft. Ich vermute allerdings auch eher nicht... sonoran hatte ja auch Ruhezustandsprobleme mit seiner externen Platte. Wahrscheinlich hat Apple mal wieder irgendwo intern was geschraubt und nicht alle Platten kommen damit zurecht.

Ich zB. hab mir ein Script geschrieben welches vor dem Backup die externe Platte erst mountet und anschließend wieder abmeldet. Damit ist es erstens leiser und 2. läuft die Platte nicht jedesmal an (was sie beim "normalen" Ruhezustand machen würde, wenn ein Datei-Öffnen oder Sichern-Dialog aufgerufen wird).
0
pfank15.02.1822:19
MikeMuc
pfank
steht irgendwo das der Tipp von iBert nur für interne Platten gilt? Probier es doch erstmal aus ob es hilft.
Dieser Hacken ist gesetzt und war er auch schon immer.

Das Problem ist ja plötzlich aufgetaucht ohne dass ich etwas an den Einstellungen geändert hätte und unabhängig von irgendwelchen Updates. Ich denke es ist ein defekt der LaCie, die haben ja auch noch was an Kontrollelektronik drin?
Weil es leicht nervig ist hänge ich im Moment die Platte einfach ab und nur noch einmal pro Tag an für ein Backup, nicht optimal aber für den Moment praktikabel.
0
pfank15.02.1822:22
Weia
Es hat 5 Jahre gedauert, bis Dein Produkt von LaCie zickt? Du Glücklicher!

Auf welchen Anbieter setzt du den? RAID fähig und nicht Kabellos?
0
MikeMuc15.02.1823:07
Mach den Haken doch einmal weg und dann wieder hin. Soll ja schon mal geholfen haben. Oder mach es wie ich. Einfach die Platte per Script auswerfen und bei Bedarf wieder mounten lassen. Läuft hier super und kostet keine Nerven:-)
0
Weia
Weia16.02.1800:25
pfank
Auf welchen Anbieter setzt du den? RAID fähig und nicht Kabellos?
Zu RAID kann ich leider nichts sagen, weil ich das selbst nie benutzt habe. Ich habe meist Gehäuse von IceCube verwendet, aber auch andere, und stets ohne Probleme – bis auf LaCie.

Von denen habe ich mal, geblendet vom zugegeben guten Design, gleich 8 Stück gekauft. Alle 8 sind innerhalb der ersten 18 Monaten defekt gewesen, die meisten mit exakt den Symptomen, die Du beschreibst. Alle 8 wurden nach jeweils endlosem Hickhack ausgetauscht, und alle 8 neuen Platten, teils aus einer neuen Baureihe, gingen wieder innerhalb der nächsten zwei Jahre kaputt.

In einem Fall hatte ich die Hoffnung, die Daten auf der Platte, von der es damals aus speziellen Gründen gerade kein aktuelles Backup gab, noch retten zu können und habe unzählige Male versucht, LaCie per Telefon oder Email zu kontaktieren, ohne jemals jemanden zu erreichen.

Als ich auf einer darauffolgenden Messe auf dem LaCie-Stand einen Mitarbeiter zur Rede stellte, meinte der sowas wie Ja, wir bauen tolleProdukte, aber der Support ist leider noch suboptimal – bis er mir nach heftigem Insistieren kleinlaut eingestand, dass die Firma schlicht keine Supportmitarbeiter hat und diesbezügliche Anfragen gezielt ins Leere laufen lässt.

Das ist zwar schon viele Jahre her und mag heute anders sein, aber ich habe mir damals geschworen, dass ich nie wieder ein Produkt dieses Herstellers kaufen werde – was exakt den einzigen derartigen Fall in meinem Leben darstellt.

Ich kann also leider keine Empfehlung pro irgendwas abgeben, sondern nur ganz energisch gegen LaCie.
„🦖The dinosaurs invented Jesus to test our confidence in science“
0
pfank16.02.1809:22
MikeMuc
Mach den Haken doch einmal weg und dann wieder hin.
Habe ich gemacht, ändert erwartungsgemäss nichts.
Ich habe leider keine Zeit und keine Lust ein script zu schreiben, danke dennoch für den Hinweis.
Ob es was bringen würde ist eine andere Frage, da ja bis vor kurzem alles wunschgemäss lief.
0
pfank16.02.1809:25
@ Weia
Das ist allerdings ärgerlich.
Ich hatte bis jetzt immer LaCie Platten und sie hatten mich bis jetzt nie enttäuscht. Den Support brauchte ich noch nie.
Habe mir allerdings beim Kauf eines neuen Mac auch immer gleich eine neue Platte geleistet. Mehr Speicherplatz und aktuelle Anschlüsse waren jeweils der Grund.
0
iBert16.02.1813:26
MikeMuc
Ich zB. hab mir ein Script geschrieben welches vor dem Backup die externe Platte erst mountet und anschließend wieder abmeldet. Damit ist es erstens leiser und 2. läuft die Platte nicht jedesmal an (was sie beim "normalen" Ruhezustand machen würde, wenn ein Datei-Öffnen oder Sichern-Dialog aufgerufen wird).

Hey Mike,
kannst Du evtl. Dein Script hier mal posten und die Stellen markieren, welche man für sein System anpassen müßte? Das würde bestimmt einigen hier helfen.
Und vielleicht auch eine kleine Anleitung dazu?
Wäre echt super

Gruß iBert
„Objektiv ist relativ, subjektiv gesehen.“
0
MikeMuc16.02.1820:21
iBert
sorry, das ist lang und mehr oder weniger chaotisch. Und dann soll ich das auch noch dokumentieren Da würd ich mich aber stark blamieren... Zudem in meinem Script auch noch beim Abschluss oder Fehlerfall eine Mail verschickt wird bzw. sollte.
Ich hab nämlich eigentlich von dem Kram nicht wirklich Ahnung und hab mir das alles so zusammengesucht und über die Jahre agepaßt.

Grob läuft es wie folgt:
1. TM in den Systemeinstellungen ausschalten
2. Script im Benutzerordner ablegen,
3. Script per launchd zu bestimmten Zeiten starten (bei mir 2x am Tag, kann man aber nach belieben anpassen. Einfach beim launchd vom TimeMachineEditor spicken gehen

Und jetzt für die Mutigen unter euch das mehr oder wenig dokumentierte Script. Es gibt hier sicherlich einige, die sich damit besser auskennen und das kräftig ausmisten oder verbessern können / wollen.
Ebenso fehlen in dem Teil so ziemlich alle Quellenangaben aus denen ich mir Teile ausgeliehen habe. Ist halt nur für den eigenen Gebrauch vorgesehen...

Also bitte nicht schreiben wie schlecht das alles gemacht ist (das weiß ich selber) sondern besser machen

#!/usr/bin/python
# encoding: utf-8

import smtplib
import datetime
import time
import string
import re
import sys
import ftplib

from datetime import datetime
from datetime import date
from datetime import timedelta
from string import Template
from subprocess import Popen, PIPE
from email.mime.text import MIMEText
from email.header    import Header


# ==================================================
# ==================================================
# all configstrings are here

senderSL     = 'Mailadresse des Versenders'
receiverSL = 'Mailadresse des Empfängers'

baseSubj     = 'Backupstatus MainBackup: '


# Login-Info für die Mailverschickung
smtpHost = 'hier kommt der Mailserver rein'
smtpPort = 587
username = 'hier der Benutzername des Mailkontos'
passwd   = 'und hier das Passwort, das ist leider gar nicht sicher!!!'

# so heißt mein Backupvolume im Finder
kBackupVolumeName = "Backup"


# ==================================================
# ==================================================
class DeltaTemplate( Template):
    delimiter = "%"

def strfdelta( tdelta, fmt):
    d = {"D": tdelta.days}
    d["H"], rem = divmod( tdelta.seconds, 3600)
    d["M"], d["S"] = divmod( rem, 60)
    t = DeltaTemplate( fmt)
    return t.substitute( **d)



# liefert die vergangene Zeit in Stunden zurück
def deltaHours( dT):
    #print dT
    pastHours = dT.days * 24 + dT.seconds//3600
    return pastHours



# do executes a shell command, returning stdout and stderr
def do( cmd):
    p = Popen( cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
    (fi, fo, fe) = (p.stdin, p.stdout, p.stderr)
    fi.close()
    msg = fo.read()
    fo.close()
    fe.close()
    return msg



# sleep waits a bit
def sleep():
    time.sleep(30)



def sendStatusByMail( aSender, recList, aSubj, bodyTxt):
    # create a list from the recList in case we have a comma separated string of multiple receivers
    rList = [recList]
    rList = recList.split(',');
    
    try:
        msg = MIMEText( bodyTxt, 'plain', 'utf-8')
        msg['Subject'] = Header( aSubj, 'utf-8')
        msg['From'] = aSender
        msg['To'] = ", ".join( rList)
        
        s = smtplib.SMTP( smtpHost, smtpPort, timeout=10)
        #s.set_debuglevel(1)
        try:
            s.starttls()
            s.login( username, passwd)
            s.sendmail( msg['From'], rList, msg.as_string())
        finally:
            s.quit()
            #print 'pythonEmail.py: Finished with no errors.'
            result = True
    
    
    except Exception, exc:
        result = False
        sys.exit( "mail failed; %s" % str(exc) ) # give a error message    return( result)




# mounted checks if vol is mounted, returns isMounted, diskSlice
def mounted( vol):
    #print "---------- mounted"
    isMounted = False
    diskSlice =  ""

    cmdStr = "diskutil info '%s'" % (vol)
    resultStr = do( cmdStr)

    res = re.search('\r*Volume Name.*\n', resultStr)
    if res:
        volName = res.group(0)[26:-1]

        res = re.search('\r*Device Identifier.*\n', resultStr)
        if res:
            diskSlice = res.group(0)[26:-1]

        res = re.search('\r*Partition Type.*\n', resultStr)
        if res:
            isApple_HFS = res.group(0)[26:-1]

        res = re.search('\r*Mounted.*\n', resultStr)
        if res:
            isMounted = res.group(0)[26:-1]

        if ((volName == vol) and (isMounted == 'Yes') and (isApple_HFS == 'Apple_HFS')):
            #print "HFS formatiertes Volumen mit Namen '%s' gefunden" % (vol)
            result = diskSlice
            isMounted = True
        else:
            isMounted = False

    #print "---------- mounted"
    return( isMounted, diskSlice)



# mount_volume returns pair (now mounted?, was mounted?),
# after attempting to mount volume for "name" as needed
def mount_volume( vol):
    #print "---------- mount_volume"
    (nowMounted, wasMounted, aDiskSlice) = (False, False, "")

    (alreadyMounted, aDiskSlice) = mounted( vol)
    #print wasMounted, aDiskSlice

    if alreadyMounted:
        nowMounted = alreadyMounted
        #print "Volume '%s' already mounted, don't eject it at end" % (vol)

    else:
        #print "Volume '%s' not mounted, so we try to mount it now" % (vol)
        if aDiskSlice == "":
            someErrText = "Michael, prüfe dein Backup!\n\nVolume '%s' kann nicht gemounted werden da es nicht gefunden wurde!" % (vol)
            nowMounted = False
        else:
            #print "mount diskslice:", aDiskSlice
            resultStr = do( "diskutil mount %s" % (aDiskSlice))
            sleep()

            # vol should be mounted now, but check to shure
            res = re.search('\r*mounted.*\n', resultStr)
            #print res.group(0)
            if res:
                nowMounted = True
            else:
                someErrText = "Bitte das Backup pruefen!\n\nBackupvolume '%s' konnte nicht gemounted werden!" % (vol)

    if not nowMounted:
        print "Fehlertext: >%s<" % (someErrText)
        # "Mounterror senden"
        subj = "%s %s" % (baseSubj, "Fehler beim Mounten vom Backuplaufwerk")
        sendStatusByMail( senderSL, receiverSL, subj, someErrText)

    #print "---------- mount_volume"
    return( nowMounted, alreadyMounted, aDiskSlice)



# unmount_volume unmounts volume
def unmount_volume( aDiskSlice):
    #print "---------- unmount_volume"
    #print "unmount_volume: ", aDiskSlice
    do( "diskutil eject '%s'" % (aDiskSlice))
    #print "---------- unmount_volume"



def backupd_running():
    #print "---------- backupd_running"
    tmIsRunning = (do( 'tmutil status | grep -c "Running = 1"'))[0:1]
    
    if tmIsRunning == '1':
        # auf Fehler testen
        if tmIsRunning == '1':
            print 'Läuft noch, weitere Runde warten.'
            tmIsRunning = True
        else:
            print 'Fertig oder Fehler'
            lastTM_Error = (do( "syslog -T utc | grep 'Backup failed with error' | grep -E '(/System/Library/CoreServices/backupd|com.apple.backupd)' | tail -n 1"))[0:19]
            if 'error' in lastTM_Error:
                tmIsRunning = 2
            else:
                tmIsRunning = False
    return tmIsRunning




def backupWithTM( vol):
    (isMounted, wasMounted, diskSlice) = mount_volume( vol)
    #print isMounted, wasMounted, diskSlice
    
    print "---------- backupWithTM"

    lastTM_Success = (do( "tmutil latestbackup | tail -c 18"))[0:17]
    #print "---"
    #print lastTM_Success
    print "----"
    if (lastTM_Success != ''):
        print "lastDatum gefunden"
        lastTM_Success_Date = datetime.strptime( lastTM_Success, '%Y-%m-%d-%H%M%S')
        print 'Last succesfull was backup at:', lastTM_Success_Date
        
        # Delta zu jetzt berechnen und wenn zu groß dann Fehlermail senden
        # Zeitdifferenz zwischen jetzt und dem letzten erfolgreichen Backup
        ago = datetime.now() - lastTM_Success_Date
        print "ago.days", ago.days
        if (ago.days > 0):
            # im Klartext heißt das, das das letzte Backup älter als 24 Stunden ist
            print "Fehler: Zeitspanne zum letzten Backup zu groß"
        
            # noch ein wenig Be- und Umrechnungen
            h2 = datetime.strftime( lastTM_Success_Date, "%d.%m.%Y um %H:%M:%S")
            
            subj2 = "%s %s" % (baseSubj, "Backup Fehler (Status: ueberfaellig)")
            msgTxt = "Bitte das Backup pruefen!\n\nDas letzte erfolgreiche Backup war am %s. Also vor %s" % (h2, strfdelta( ago, "%D Tagen, %H Stunden und %M Minuten!"))
            #sendStatusByMail( senderSL, receiverSL, subj, msgTxt)
    else:
        print "kein lastDatum gefunden"
                # hier landen wir auch wenn das Backuplaufwerk nicht gemountet ist. Dann wird ebenfalls kein Datum gefunden...
        if isMounted:
            # Wahrscheinlicher: es ist das erste Backup auf diesem Laufwerk
            print 'Keinen Eintrag mit erfolgreichem Backup im Log gefunden. Ist das etwa das erste Backup auf diesem Laufwerk? Dann ist das ja kein echtes Problem.'
            subj2 = "%s %s" % (baseSubj, "Backup Fehler (Status:  Zeitpunkt des letzten erfolgreichen Backups konn nicht bestimmt werden)")
            msgTxt = "Bitte das Backup pruefen!\n\nKein Backupvolume gemountet"
        else:
            # Kein Datum weil es nicht gemountet ist...
            print 'Keinen Eintrag mit erfolgreichem Backup im Log gefunden weil das Backupvolume nicht gemountet ist.'
            # keine Mail verschicken, ist oben schon passiert!
            subj2 = ""
            #subj2 = "%s %s" % (baseSubj, "Backup Fehler (fatal Error:  Backupvolume ist nicht gemountet.)")
            #msgTxt = "Bitte das Backup pruefen!\n\nKein Backupvolume gemountet"
            
    
    if isMounted:
        print 'Backup gemountet, also Backup starten!'
        # TM starten
        backupStartTime = datetime.now()
        print "Backup Start um: %s" % datetime.strftime( backupStartTime, "%d.%m.%Y um %H:%M:%S")
        do( 'tmutil startbackup --auto --rotation')
        
        sleep()
        sleep()
        sleep()
        
        tmIsRunning = True
        while (tmIsRunning == True):
            sleep()
            tmIsRunning = backupd_running()
        
        sleep()
        sleep()
        sleep()
        print 'Backup ist fertig, Mail schicken'
        if tmIsRunning == 2:
            print "Fehler: Dialog blockiert oder sonstiger Fehler"
            
            # kann sein, das kein lastSuccessDate definiert ist wenn oben kein Eintrag gefunden wurde oder es das 1. Backup ist und dieses fehlgeschlagen ist...
            # wenn also lastSuccessDate nicht definiert ist dann gibts jetzt einen FEHLER, das sollte noch behoben werden!!!
            # Zeitdifferenz zwischen jetzt und dem letzten erfolgreichen Backup
            ago = datetime.now() - lastSuccessDate
            #print 'Vergangene Zeit:', ago
            #print "ago.days", ago.days
        
            # noch ein wenig Be- und Umrechnungen
            h2 = datetime.strftime( lastSuccessDate, "%d.%m.%Y um %H:%M:%S")
        
            subj2 = "Fehler beim Backup"
            msgTxt = 'Bitte das Backup  pruefen2!\n\nDas letzte erfolgreiche Backup war am %s. Also vor %s' % (h2, strfdelta( ago, "%D Tagen, %H Stunden und %M Minuten!"))
            #print msgTxt
        
        else:
            # Erfolgsmail erstellen
            print "create Successmail"
            
            #lastTM_Success = (do( "tmutil latestbackup | tail -c 18"))[0:17]
            h2 = datetime.strftime( backupStartTime, "%d.%m.%Y um %H:%M:%S")
            
            backupEndTime = datetime.now()
            dauer = backupEndTime - backupStartTime
        
            subj2 = 'Backup OK'
            msgTxt = 'Das Backup am %s war erfolgreich\nDauer: %d:%d Stunden' % (h2, dauer.seconds/3600, dauer.seconds%3600/60)
            print msgTxt
    
    
    if not wasMounted:
        print "Ready, unmount it because it was unmounted earlier"
        unmount_volume( diskSlice)
    
    # send Mail NOW
    #print "Send Statusmail"
    if (subj2 != ''):
        subj = "%s %s" % (baseSubj, subj2)
        sendStatusByMail( senderSL, receiverSL, subj, msgTxt)
        
        
    return diskSlice
    #print "---------- backupWithTM"




# ============================================================ ===================
# Main Start
if time.strftime( "%H") < "12":
    doNachmittag = False
else:
    doNachmittag = True

    

# "=========================================================== ===================="
print "======== TM Start Script =========="
diskSlice = backupWithTM( kBackupVolumeName)
print "======== TM Fertig  =========="


# dieser Test wird nur Mittags durchgeführt
if doNachmittag:
    runTest = do( "ps auxc | grep 'Microsoft Outlook'")
    #print 'runtest: ', runTest
    if not runTest:
        print 'Kein Outlook offen, also wieder Schlafen gehen'
        unmount_volume( diskSlice)
        sleep()
        sleep()
        do( "pmset sleepnow")

print "======== TM Ende Script =========="
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.