Hi,
Ich habe verschiedene Systeme, auf denen Debian läuft. Unter anderem fertigt ein Backup-Server regelmäßige Backups an, u.a. von meiner Laptop-Workstation. Dazu setze ich rdiff-backup über SSH ein. Nun läuft das Backup i.d.R. in der Nacht und benötigt über das Netzwerk auch entsprechend Zeit. Der Laptop (GNOME 3) geht jedoch nach 2 Stunden in den Schlafmodus über und das stört das Backup.
Kann ich den Schlafmodus verhindern, wenn ein bestimmter Benutzer X eingeloggt ist? $Suchmaschine erbrachte bisher keine sinnvolle Information. Daher bin ich für alle Tipps dankbar.
VG Daniel
Am 05.12.2014, 11:16 Uhr, schrieb Daniel Leidert daniel.leidert.spam@gmx.net:
Hallo Daniel,
Hi,
Ich habe verschiedene Systeme, auf denen Debian läuft. Unter anderem fertigt ein Backup-Server regelmäßige Backups an, u.a. von meiner Laptop-Workstation. Dazu setze ich rdiff-backup über SSH ein. Nun läuft das Backup i.d.R. in der Nacht und benötigt über das Netzwerk auch entsprechend Zeit. Der Laptop (GNOME 3) geht jedoch nach 2 Stunden in den Schlafmodus über und das stört das Backup.
Kann ich den Schlafmodus verhindern, wenn ein bestimmter Benutzer X eingeloggt ist? $Suchmaschine erbrachte bisher keine sinnvolle Information. Daher bin ich für alle Tipps dankbar.
wenn Du den Schlafmodus in Gnome deaktivierst und stattdessen ein Shell-Skript beauftragst, dürfte das doch Dein Anliegen lösen, oder?
Hier hat mal einer was geschrieben, das als Grundlage dienen könnte:
'shutdown', wenn keiner angemeldet ist - siehe
http://www.heise.de/ct/hotline/Linux-PC-automatisch-herunterfahren-2057440.h...
Habe ich so im Einsatz und ne Variante mit 'suspend' auf der shell-Werkbank.
snip
Grüße,
Bernhard
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hi ho.
unter gnome3 -> Anwendungsmenu -> Einstellungen -> Energieverwaltung [TAB] System Inaktivitaet auf nie stellen.
dann wuerde ich einen cronjob erstellen oder ueber eine shellskript, welches runden dreht solange das backup aktiv ist und danach nen suspend macht.
LG DJRF
On 05.12.2014 11:16, Daniel Leidert wrote:
Hi,
Ich habe verschiedene Systeme, auf denen Debian läuft. Unter anderem fertigt ein Backup-Server regelmäßige Backups an, u.a. von meiner Laptop-Workstation. Dazu setze ich rdiff-backup über SSH ein. Nun läuft das Backup i.d.R. in der Nacht und benötigt über das Netzwerk auch entsprechend Zeit. Der Laptop (GNOME 3) geht jedoch nach 2 Stunden in den Schlafmodus über und das stört das Backup.
Kann ich den Schlafmodus verhindern, wenn ein bestimmter Benutzer X eingeloggt ist? $Suchmaschine erbrachte bisher keine sinnvolle Information. Daher bin ich für alle Tipps dankbar.
VG Daniel
_______________________________________________ Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Hi Daniel,
On Fri 05.12.2014 11:16:59, Daniel Leidert wrote:
Kann ich den Schlafmodus verhindern, wenn ein bestimmter Benutzer X eingeloggt ist? $Suchmaschine erbrachte bisher keine sinnvolle Information. Daher bin ich für alle Tipps dankbar.
Ich habe genau das folgende Script im Einsatz:
/etc/pm/sleep.d/01_prevent_on_rsync: #!/bin/bash if ps -ef | grep -q "[rs]ync --server" then exit 1 else exit 0 fi
Die Hooks in {/etc,/usr/lib/pm-utils}/sleep.d werden beim Start des Suspend-Modus aufgerufen, und sollte eines der Scripte einen Exit-Code != 0 zurückgeben wird der Suspend-Versuch abgebrochen.
Ich hab mit diesem Script den Sleep-Modus für eine Debian-Workstation unterbunden, die per WakeOnLan geweckt wird, und dann nach 30min einschlafen würde, bevor das Backup eine Chance hatte, durchzulaufen.
Wenn du mehr über die Funktionalität wissen magst kannst du mal bei der Archlinux-Wikiseite vorbeischauen (fast alles trifft genauso auf Debian zu): https://wiki.archlinux.org/index.php/pm-utils
Grüße, Andre
Hi,
Am Freitag, den 05.12.2014, 20:03 +0100 schrieb Andre Klärner:
On Fri 05.12.2014 11:16:59, Daniel Leidert wrote:
Kann ich den Schlafmodus verhindern, wenn ein bestimmter Benutzer X eingeloggt ist? $Suchmaschine erbrachte bisher keine sinnvolle Information. Daher bin ich für alle Tipps dankbar.
Ich habe genau das folgende Script im Einsatz:
/etc/pm/sleep.d/01_prevent_on_rsync: #!/bin/bash if ps -ef | grep -q "[rs]ync --server" then exit 1 else exit 0 fi
Nach langem komme ich nun dazu, das mal zu probieren. Dabei bin ich darauf gekommen, dass der Ausdruck immer wahr ist und das Skript daher immer den Exit-Code 1 produziert und Suspend quasi immer ausgeschaltet ist. Das Kommando:
ps -ef | grep -q "[rs]ync --server"
ist immer wahr:
# ps -ef | grep "rdiff-backup --server" root 29456 29455 0 13:02 ? 00:00:00 /usr/bin/sudo /usr/bin/rdiff-backup --server --restrict-read-only / root 29457 29456 1 13:02 ? 00:00:08 /usr/bin/python /usr/bin/rdiff-backup --server --restrict-read-only / root 31262 24648 0 13:14 pts/2 00:00:00 grep rdiff-backup --server # ps -ef | grep "rdiff-backup --server2" root 31264 24648 0 13:14 pts/2 00:00:00 grep rdiff-backup --server2
da es auf sich selbst zutrifft.
Die Idee ist aber sicher die richtige. Ich habe den Ausdruck etwas verändert und teste jetzt.
VG Daniel
On 29.03.2015 13:17, Daniel Leidert wrote:
Am Freitag, den 05.12.2014, 20:03 +0100 schrieb Andre Klärner:
Moin,
Ich habe genau das folgende Script im Einsatz:
/etc/pm/sleep.d/01_prevent_on_rsync: #!/bin/bash if ps -ef | grep -q "[rs]ync --server" then exit 1 else exit 0 fi
Nach langem komme ich nun dazu, das mal zu probieren. Dabei bin ich darauf gekommen, dass der Ausdruck immer wahr ist und das Skript daher immer den Exit-Code 1 produziert und Suspend quasi immer ausgeschaltet ist. Das Kommando:
ps -ef | grep -q "[rs]ync --server"
ist immer wahr:
# ps -ef | grep "rdiff-backup --server" root 29456 29455 0 13:02 ? 00:00:00 /usr/bin/sudo /usr/bin/rdiff-backup --server --restrict-read-only / root 29457 29456 1 13:02 ? 00:00:08 /usr/bin/python /usr/bin/rdiff-backup --server --restrict-read-only / root 31262 24648 0 13:14 pts/2 00:00:00 grep rdiff-backup --server # ps -ef | grep "rdiff-backup --server2" root 31264 24648 0 13:14 pts/2 00:00:00 grep rdiff-backup --server2
da es auf sich selbst zutrifft.
Die Idee ist aber sicher die richtige. Ich habe den Ausdruck etwas verändert und teste jetzt.
Sicher einen Race-Condition. Es kann sein, daß das ps schon terminiert hat, wenn grep -q zuschlägt, muß aber nicht. Ich würde einfach schreiben:
ps -ef | grep -v ps | grep -q "[rs]ync --server"
H.
Daniel Leidert daniel.leidert.spam@gmx.net (So 29 Mär 2015 13:17:03 CEST): …
Nach langem komme ich nun dazu, das mal zu probieren. Dabei bin ich darauf gekommen, dass der Ausdruck immer wahr ist und das Skript daher immer den Exit-Code 1 produziert und Suspend quasi immer ausgeschaltet ist. Das Kommando:
ps -ef | grep -q "[rs]ync --server"
Du willst wahrscheinlich
ps -ef | grep -q '[f]oo'
machen, damit das Grep sich nicht selbst findet (Nur ein Zeichen in eckigen Klammern!)
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann
Am Sonntag, den 29.03.2015, 22:47 +0200 schrieb Heiko Schlittermann:
Daniel Leidert daniel.leidert.spam@gmx.net (So 29 Mär 2015 13:17:03 CEST): …
Nach langem komme ich nun dazu, das mal zu probieren. Dabei bin ich darauf gekommen, dass der Ausdruck immer wahr ist und das Skript daher immer den Exit-Code 1 produziert und Suspend quasi immer ausgeschaltet ist. Das Kommando:
ps -ef | grep -q "[rs]ync --server"
Du willst wahrscheinlich
ps -ef | grep -q '[f]oo'
machen, damit das Grep sich nicht selbst findet (Nur ein Zeichen in eckigen Klammern!)
Hm, ja. Mir war nicht klar, dass die eckigen Klammern dafür da sein sollen. Auch pgrep wurde mir mittlerweile schon vorgeschlagen [1]. Mit den pm-utils klappt das Skript dann auch super.
ABER: Allerdings nutze ich Debian Sid und (a) systemd nutzt die pm-utils nicht, (b) das selbe (angepasste) Skript unter /lib/systemd/system-sleep/ funktioniert nicht, weil der Exit-Code nicht abgefangen wird (Logik funktioniert) und (c) eine .service-Datei wie hier [2] funktioniert auch nicht. Damit stehe ich weiterhin am Anfang.
Momentan bleibt damit nur noch systemd-inhibit, dass dann IMO so aufgerufen werden müsste:
rdiff-backup [..] --remote-schema 'ssh -C %s \ /usr/bin/sudo /bin/systemd-inhibit [..] \ /usr/bin/sudo /usr/bin/rdiff-backup --server [..]' [..]
und das gefällt mir ganz und gar nicht, schon wegen der beiden sudo Kommandos und weil ich dann den command-String in .ssh/authorized_keys nicht mehr nutzen kann. Lieber wäre mir, wenn ich systemd ganz simpel mitteilen könnte, suspend/hibernate/sleep zu unterlassen, wenn dieser spezielle Nutzer eingeloggt ist oder wenn rdiff-backup läuft.
Ich habe gestern mehrere Stunden mit Suche und Debugging zugebracht und es ärgert mich, dass mir das so schwer gemacht wird. Mein Wunsch ist doch kein Einzelfall [3]?!
[1] http://www.wgdd.de/2015/03/prevent-suspendhibernate-if-system-is.html [2] https://bbs.archlinux.org/viewtopic.php?id=176876 [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771641
VG Daniel
On 29.03.2015 13:17, Daniel Leidert wrote:
Hi,
Am Freitag, den 05.12.2014, 20:03 +0100 schrieb Andre Klärner:
On Fri 05.12.2014 11:16:59, Daniel Leidert wrote:
Kann ich den Schlafmodus verhindern, wenn ein bestimmter Benutzer X eingeloggt ist? $Suchmaschine erbrachte bisher keine sinnvolle Information. Daher bin ich für alle Tipps dankbar.
Ich habe genau das folgende Script im Einsatz:
/etc/pm/sleep.d/01_prevent_on_rsync: #!/bin/bash if ps -ef | grep -q "[rs]ync --server" then exit 1 else exit 0 fi
Nach langem komme ich nun dazu, das mal zu probieren. Dabei bin ich darauf gekommen, dass der Ausdruck immer wahr ist und das Skript daher immer den Exit-Code 1 produziert und Suspend quasi immer ausgeschaltet ist. Das Kommando:
ps -ef | grep -q "[rs]ync --server"
Noch ein Vorschlag: ps -U rsyncuser -ef | …
Dann wird grep gar nicht von ps mit angezeigt. Alternativ: tmp=`ps -ef` if echo "tmp" | grep -q "r?sync -- server" then exit 1 else exit 0 fi
Hier wird grep erst gestartet, wenn ps schon fertig ist. Du kannst auch ps anweisen, nur die Kommandozeile auszugeben. Dann kannst Du den gesamten String testen.
Tobias
lug-dd@mailman.schlittermann.de