[gelöst] Verzeichnis von Windows-Server einbinden

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 03.06.2017 00:39:34

jue hat geschrieben:
scientific hat geschrieben:Füge das in die Mount-Unit als

Code: Alles auswählen

 
After=NetworkManager-wait-online.service
ein.
Ja, Danke, das versuche ich nächste Woche, obwohl ich es nicht verstehe ...
Das ist ein Service, der von network-online.target aufgerufen wird. Wie TomL schon schrieb, garaniert network-online.target nicht, dass eine Verbindung steht, sondern signalisiert nur, dass der Aufbau einer Verbindung gestartet wurde.

Code: Alles auswählen

# cat /lib/systemd/system/NetworkManager-wait-online.service 
[Unit]
Description=Network Manager Wait Online
Documentation=man:nm-online(1)
Requisite=NetworkManager.service
After=NetworkManager.service
Before=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/nm-online -s -q --timeout=30
RemainAfterExit=yes

[Install]
WantedBy=network-online.target
Dieses Service ruft das Programm nm-online auf, welches sich mit Returncode 0 (=Erfolg) beendet, sobald der Networkmanager eine erfolgreiche Verbindung aufgebaut hat. Passierte das nach 30 Sekunden immer noch nicht, beendet sich das Programm hier mit einem Fehlercode.
Der Service wird mit dem Type=oneshot ausgeführt. Das bedeutet, die von ihm abhängigen Units werden erst gestartet, sobald das Programm in ExecStart sich beendet hat.
Das wiederum bedeutet, dass eine Mountunit, welche die Abhängigkeit

Code: Alles auswählen

After=NetworkManager-wait-online.service
hat, erst nach dem beenden dieses Services (also wenn eine erfolgreiche Verbindung mit dem Netz gemeldet wird) gestartet wird.
Du kannst natürlich noch zusätzlich

Code: Alles auswählen

Wants=NetworkManager-wait-online.service
in deine Mountunit einbauen. Da müsst man jetzt experimentieren, ob das notwendig ist. Wahrscheinlich schon.

Verwendest du den Automounter, wie im Posting von mir von vorhin vorgeschlagen, dann müssen diese beiden Wants, und After-Abhängigkeiten natürlich in die automount-Unit, nicht in die Mountunit.

Ich müsst jetzt auch noch experimentieren, dass ich dir eine letztgültige Anleitung geben könnte... Aber ein wenig experimentieren bringt eigene Lernerfolge und mehr Verständnis.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

TomL

Re: Verzeichnis von Windows-Server einbinden

Beitrag von TomL » 03.06.2017 11:11:00

scientific hat geschrieben:Vielleicht hilft dir ja mein unnützes, faktenfreies Geschwafel. Hier tut es jedenfalls gute Dienste.
Was soll dieser Scheiss? Warum eskalierst Du das immer und immer weiter und projizierst das hier völlig unnötig und zusammenhanglos auf einen neuen und eher konstruktiven Sachverhalt? Warum kannst Du nicht einfach mal das Nachtreten lassen und aufhören, einen Disput regelrecht weiter zu forcieren? :facepalm:

Beschränke Dich Doch einfach mal auf die sachliche Ebene..... wenn etwas funktioniert, kann es nicht komplett falsch sein. Und wenn etwas funktioniert, ist das nicht "faktenfrei", sondern der Status Quo "es funktioniert" ist der Fakt. Was soll das also?

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 03.06.2017 11:19:51

Ich schrieb dies schon früher in diesem Thread, du hast es als unnötiges Abschweifen abqualifiziert.

Egal.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: Verzeichnis von Windows-Server einbinden

Beitrag von jue » 06.06.2017 08:14:25

1. Schritt:
Ich habe jetzt in /etc/systemd/system/ in den *.mount-Dateien

Code: Alles auswählen

After=network.target network-online.target
durch

Code: Alles auswählen

After=NetworkManager-wait-online.service
ersetzt. Der Bootvorgang kommt mir gleich vor, also er braucht nicht länger. Die Freigaben sind erreichbar.
Ich teste jetzt und fahre dann bei Bedarf mit dem 2. Schritt weiter.

Code: Alles auswählen

cat /lib/systemd/system/NetworkManager-wait-online.service
[Unit]
Description=Network Manager Wait Online
Documentation=man:nm-online(1)
Requisite=NetworkManager.service
After=NetworkManager.service
Before=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/nm-online -s -q --timeout=30
RemainAfterExit=yes

[Install]
WantedBy=network-online.target
Also, zumindest bis hier her hat sich an der Problematik nichts geändert. Zu Beginn kann ich hervorragend auf die Freigaben zugreifen, und dann kommt ein Zeitpunkt an dem z. B. der Dolphin oder der PCManFM-Qt einfriert, wenn ich in eine Freigabe möchte. Wenn ich dann sofort Gigolo starte und damit eine Freigabe einhänge und über diesen Weg den Dolphin öffne, kann ich zugreifen, obwohl der andere Dolphin noch hängt.
Die Mount-Units folgen diesem Prinzip:

Code: Alles auswählen

[Unit]
Description=Mount Network-Drives

Requires=network-online.target
After=NetworkManager-wait-online.service
Before=shutdown.target
Conflicts=shutdown.target
ConditionPathExists=/home/jue/Servername/Freigabe

[Mount]
What=//192.168.10.xxx/Freigabe$
Where=/home/jue/Servername/Freigabe
#Options=username=jue,password=strenggeheim,rw,nosuid,nodev,noexec,async
Options=username=jue,password=strengeheim,defaults,file_mode=0777,dir_mode=0777
Type=cifs

[Install]
WantedBy=multi-user.target
Fehlt da noch was?
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 06.06.2017 15:33:52

Hi Jue

Speichere die beiden Units ftp-keepalive@.timer und ftp-keepalive@.service nach /etc/systemd/system/ und aktiviere sie so, wie am Ende meines Zitates angeführt für die Mountpoints.
Also nur den Timer pro Mountpoint!!!
scientific hat geschrieben:

Code: Alles auswählen

(0 ✓) root@aldebaran[/@debian-testing] (00:01) /etc/systemd/system: # cat ftp-keepalive@.timer 
[Unit]
PartOf= %i.mount
After= %i.mount
Before=umount.target
Conflicts=umount.target sleept.target suspend.target

[Timer]
OnActiveSec=10
OnUnitActiveSec=90

[Install]
WantedBy=%i.mount

Code: Alles auswählen

(0 ✓) root@aldebaran[/@debian-testing] (00:01) /etc/systemd/system: # cat ftp-keepalive@.service 
[Unit]
#Description=Keepalive FTP-Connection on %f

[Service]
#ExecStart=/bin/sh -c "/bin/ls %f > /dev/null"
ExecStart=/bin/sh -c "/usr/bin/stat %f > /dev/null"

Du kannst für jeden Mountpunkt (unabhängig ob über fstab oder explizite systemd-unit gehandhabt) extra dieses keep-alive-Timer aktivieren, indem du den Timer (nicht das Service!!!) enablest:

Code: Alles auswählen

systemctl enable ftp-keepalive@home-username-mount-point.timer
Damit wird dem Server angezeigt, dass das Verzeichnis eingehängt ist, auch wenn grad kein Datenverkehr stattfindet.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

[gelöst ]Re: Verzeichnis von Windows-Server einbinden

Beitrag von jue » 06.06.2017 16:02:38

DANKE! Jetzt muss ich testen, ob es funktioniert ... bis jetzt ist alles o.k., aber es dauert ja erfahrungsgemäss immer einige Zeit ...

Update@scientific: das war genial, ich sehe das Problem als gelöst an. Ich glaube es kaum ...

Herzlichen Dank für die absolut zähe und unnachgiebige Unterstützung an alle.
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

TomL

Re: [gelöst ]Re: Verzeichnis von Windows-Server einbinden

Beitrag von TomL » 06.06.2017 18:10:09

jue hat geschrieben:ich sehe das Problem als gelöst an.
Sorry... aber ich riskiere jetzt einfach mal, mich unbeliebt zu machen.... denn ich habe die Vermutung, dass das Problem überhaupt nicht gelöst ist, sondern nach wie vor besteht und nur mit einem Workaround umschifft wurde. Ich habe natürlich nicht den Vorsatz, mich unbeliebt zu machen, mich interessieren tatsächlich nur die technischen Aspekte. Und vor dem Hintergrund wäre das für mich bei erster Betrachtung allerdings keine optimale Lösung. Aber ich gestehe auch, dass ich für Timer-Units bisher keinen Bedarf hatte und diese Kombination hier ganz neu für mich war. Ich habe das natürlich gleich als wertvolle Idee erkannt und dieses Beispiel sicher in meiner Bibliothek "gebunkert". Aber...

... wenn ich das so bei mir umsetzen würde, hätte das für mich gleich mehrere negative Konsequenzen. Zum Beispiel, dass ich an meinem Server für 3 Platten den SpinDown nach einer bestimmten Zeit "unused" verhindern würde und weiterhin das Energiemanagement des Servers selber untergraben würde. Meine 3 Platten verschlafen garantiert im Jahresmittel 22 Stunden am Tag ... und das ganz unzweifelhaft zu meinem Vorteil sehr stromsparend. Bei der Keep-Alive-Lösung besteht aber genau der gegenteillige Effekt, und zwar durchlaufender Stromververbrauch während des ganzen Jahres. Wenn ich mich an meinen damaligen Windows-Server erinnere, hatte der in Ruhephasen einen Stromverbrauch von etwa 90 Watt. Mit CPU-Last und Lüfter und alle Schnittstellen "wach" gings rauf auf 110-120 Watt , unter Volllast manchmal bis zu 170 Watt. Ich vermute, dass diese stromsparende Ruhephase mit dem Keep-Alive komplett verhindert wird. Die erste-beste im Web gefundene interne Seagate 2TB-Desktop-HDD hat laut Datenblatt eine Leistungsaufnahme von fast 6 Watt. Ich rechne der Bequemlichkeit einfach mal nur mit 5 Watt. Das sind trotzdem über 40 KW/h im Jahr pro Platte, also deutlich über 120 KW/h jährlich bei meinen 3 Platten... und das bei steigenden Strompreisen. Optimal geht imho 'anders'.

Darüber hinaus befürchte ich, dass das auch einen erheblich negativen Einfluss auf die Lebenszeit einer normaler Desktop-Festplatte hat, weil deren einfaches Consumer-Getriebe nun faktisch 24/7 am Rennen ist, siehe Pkt.8.

Aber da ich eben kein Techniker bin und ich bei solchen Sachen auch immer falsch liegen kann, vielleicht kann mir jemand meinen Irrtum aufzeigen.....

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst ]Re: Verzeichnis von Windows-Server einbinden

Beitrag von jue » 06.06.2017 18:49:23

TomL hat geschrieben:
jue hat geschrieben:ich sehe das Problem als gelöst an.
Sorry... aber ich riskiere jetzt einfach mal, mich unbeliebt zu machen.... .
Keine Sorge, das sind wichtige Einwände. Ich hänge mit meinem Debian-Rechner an einem Windows-Server, an dem viele Windows-Rechner dran hängen. Während der Arbeitszeit kommt dieser Server nicht zur Ruhe. Und zum Feierabend schalte ich meinen Rechner - wie die anderen auch - aus, dann hat der Server Ruhe. Ich werde es alles beobachten und gegebenenfalls berichten. Aber sicher, mich würde es auch interessieren, was da ein Fachmann dazu sagt. Was mich persönlich stört ist, dass ich an meine Grenzen komme meinen eigenen Rechner einzurichten ...
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 06.06.2017 19:36:34

Und aus dem Grunde, damit so ein Mount nicht dauernd aktiv ist, bevorzuge ich auch automounts mit auto-unmount nach einer Idle-Zeit.

Wenn du, jue, noch die fstab um folgende Option ergänzt:

Code: Alles auswählen

x-systemd.idle-timeout=30
oder eine automount-unit manuell mit folgendem Inhalt erstellst:

Code: Alles auswählen

cat /etc/systemd/system/home-jue-Servername-Freigabe.automount
[Unit]
Before=remote-fs.target
BindsTo=network-online.target
After=network-online.target

[Automount]
Where=/home/jue/Servername/Freigabe
TimeoutIdleSec=30

[Install]
WantedBy=network-online.target
Und dann die automount-Unit aktivierst mit

Code: Alles auswählen

systemctl enable home-jue-Servername-Freigabe.automount
Dann wird der Automount beim Herstellen der Netzwerkverbindung aktiviert. Sobald du auf den Mountpunkt zugreifst, wird gemountet.
Wichtig ist, dass die Idle-Zeit in der Automount-Unit kleiner ist als das Interval im keepalive-Timer.
Warum?
Wenn du von "außerhalb" ein z.B. ls auf den Mountpunkt loslässt, wird gemountet, und nach 30 Sekunden unmountet der Mountpunkt wieder.
Wenn du in der Shell oder im Dateiexplorer in ein Verzeichnis im Mountpunkt wechselst und dort drin stehst, sonst aber keinerlei Aktivitäten veranstaltest, würde dir die Verbindung "unterm Arsch" wegsterben. Damit das nicht passiert feuert der Keepalive-Timer alle 90 Sekunden ein stat ab und hält die Verbindung aufrecht.
Wechselst du wieder in ein Verzeichnis außerhalb des Mountpunktes, kommt wieder die Idle-Zeit zum tragen, die den Mountpunkt unmountet, bevor der Keepalive-Timer ein stat abfeuern kann.

Damit der Mountpunkt ausgehängt wird, wenn network-online.target gestoppt wird, wäre ein

Code: Alles auswählen

BindsTo=home-jue-Servername-Freigabe.automount
in die [Unit]-Section der Mount-Unit von Vorteil.

Das hat auch den Vorteil, dass der Automount nur bei aktiver Netzwerkverbindung "scharf" ist. Ist die Netzwerkverbindung nicht aktiv (hier muss noch eine weitere Ergänzung in den Networkmanager-dispatcher!!!!) blockiert ein ls oder gar nur eine bash-completion auf den Mountpoint das system NICHT, weil der Automount nicht aktiv ist.

Ich möchte nur anmerken, dass ich das alles schon früher in diesem Thread auch mal gepostet habe. ;-)

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst ]Re: Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 06.06.2017 19:39:59

jue hat geschrieben: Was mich persönlich stört ist, dass ich an meine Grenzen komme meinen eigenen Rechner einzurichten ...
Nur wer an seine Grenzen stößt, kann diese erweitern. :)

Als ich mich das erste Mal mit systemd beschäftigt habe, hab ich überhaupt nicht verstanden, warum ich ein systemctl enable und ein systemd start benötige, wo doch das Erstellen eines Symlinks auch reichen würde... Und überhaupt, warum ist systemd so ein Schas... :)

Dann hab ich das Geranze über systemd, von dem ich so viel damals las, über Bord geworfen und mich mit dem Teil beschäftigt... Und bin weit über meine Grenzen hinausgewachsen und hab festgestellt, das Ding ist wirklich genial!!

Alles Gute!

Wenn du noch Hilfe benötigst, steh ich gerne zur Verfügung

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von jue » 06.06.2017 20:08:44

scientific hat geschrieben:Und aus dem Grunde, damit so ein Mount nicht dauernd aktiv ist, bevorzuge ich auch automounts mit auto-unmount nach einer Idle-Zeit. ...
Ja, das mache ich Morgen. Eine letzte Frage:
Muss ich die alten Mount-Units in /etc/systemd/system/ löschen und zuvor vielleicht noch Dinge wie

Code: Alles auswählen

systemctl disable ftp-keepalive@home-username-mount-point.timer
und

Code: Alles auswählen

systemctl disable home-jue-Servername-Freigabe.mount
ausführen?
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 06.06.2017 20:24:08

Nein, lass die und ergänze sie.

Die Regelung ist:
Wenn in /etc/systemd/system eine passende Unit vorhanden ist, hat die Virrang vor denen in /lib/systemd... Bzw. erzeugt der Generator beim Reload keine.

Die Anpassungen wie von mir vorgeschlagen lassen sich ohnehin nur in der Unit machen, nicht über die fstab (ausgenommen automount und idle-time)

Der keepalive-timer ist an eine vorhandene Mountunit gebunden. Egal ob über fstab oder manuell erzeugt. Startet beim mounten und stoppt beim unmounten.
Und ist auch unabhängig vom Vorhandensein eines automounts (wiederum egal ob manuell erstellt oder über die fstab). Du musst nur darauf achten, dass das Timerintervall größer ist, als die idle-time!

Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von jue » 07.06.2017 08:43:54

Beim Booten kamen zwar Fehlermeldungen (Failed to start smb-keepalive@home-jue-Servername-Freigabe.timer), es funktioniert aber irgendwie. Lustig ist, dass die Freigaben im Dolphin weg sind und dann aber wieder da, wenn ich in den Ordner gehe, in dem die die Freigaben gemountet sind. Timerintervall (90) müsste so größer sein, als die idle-time (30).

Code: Alles auswählen

root@rechner:/etc/systemd/system# cat home-jue-Servername-Freigabe.automount 
[Unit]
Before=remote-fs.target
BindsTo=home-jue-Servername-Freigabe.automount
After=network-online.target

[Automount]                                                                                                                                                   
Where=/home/jue/RServername/Freigabe                                                                                                              
TimeoutIdleSec=30                                                                                                                                             
                                                                                                                                                              
[Install]                                                                                                                                                     
WantedBy=network-online.target 

Code: Alles auswählen

root@rechner:/etc/systemd/system# cat home-jue-Servername-Freigabe.mount                                                                          
[Unit]                                                                                                                                                        
Description=Mount Network-Drives                                                                                                                              

Requires=network-online.target
After=network.target network-online.target
Before=shutdown.target
Conflicts=shutdown.target
ConditionPathExists=/home/jue/Servername/Freigabe

[Mount]
What=//192.168.10.xxx/Freigabe
Where=/home/jue/Servername/Freigabe
#Options=username=jue,password=strenggeheim,rw,nosuid,nodev,noexec,async
Options=username=jue,password=strenggeheim,defaults,file_mode=0777,dir_mode=0777
Type=cifs

[Install]
WantedBy=multi-user.target

Code: Alles auswählen

root@rechner:/etc/systemd/system# cat smb-keepalive@.timer
[Unit]
PartOf= %i.mount
After= %i.mount
Before=umount.target
Conflicts=umount.target sleept.target suspend.target

[Timer]
OnActiveSec=10
OnUnitActiveSec=90

[Install]
WantedBy=%i.mount
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 07.06.2017 09:08:04

Du hast die automount-unit an sich selbst gebunden (BindsTo)
Diese Zeile musst du in die Mount-Unit schreiben und aus der automount-Unit löschen!

Und Requires=network-online.target in der Mountunit ist wohl auch fehlerhaft.
ConditionPathExists inder Mountunit ist auch nicht korrekt.
Wenn, dann würd ich das in die Automount-Unit schreiben. Aber auch da ists überflüssig

Die Install-Section in der Mount-unit ist ebenfalls widersinnig.
Gemountet wird per automounter, nicht beim Systemstart.

Where in der automount-Unit hat RServername statt Servername!

Das fällt mir grad auf. Am Handy sind Codetags leider ziemlich unentschlüsselbar.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 07.06.2017 09:38:15

So, bin jetzt am Rechner, nicht mehr am Handy.

Ich hab mir erlaubt, die Units zu korrigieren:

Code: Alles auswählen

root@rechner:/etc/systemd/system# cat home-jue-Servername-Freigabe.automount 
[Unit]
Before=remote-fs.target
BindsTo=network-online.target
After=network-online.target

[Automount]                                                                                                                                                   
Where=/home/jue/Servername/Freigabe                                                                                                              
TimeoutIdleSec=30                                                                                                                                             
                                                                                                                                                              
[Install]                                                                                                                                                     
WantedBy=network-online.target 

Code: Alles auswählen

root@rechner:/etc/systemd/system# cat home-jue-Servername-Freigabe.mount                                                                          
[Unit]                                                                                                                                                        
Description=Mount Network-Drives                                                                                                                              

After=network.target network-online.target
Before=shutdown.target
Conflicts=shutdown.target

[Mount]
What=//192.168.10.xxx/Freigabe
Where=/home/jue/Servername/Freigabe
#Options=username=jue,password=strenggeheim,rw,nosuid,nodev,noexec,async
Options=username=jue,password=strenggeheim,defaults,file_mode=0777,dir_mode=0777
Type=cifs

Code: Alles auswählen

root@rechner:/etc/systemd/system# cat smb-keepalive@.timer
[Unit]
PartOf= %i.mount
After= %i.mount
Before=umount.target
Conflicts=umount.target sleept.target suspend.target

[Timer]
OnActiveSec=10
OnUnitActiveSec=90

[Install]
WantedBy=%i.mount
Wenn du der Mountunit ein Requires verpasst, ruft diese network-online.target auf, wenn die Mount-Unit gestartet wird.
network-online.target macht aber nichts, und stellt schon gar keine Netzwerkverbindung her! Du wolltest wohl die umgekehrte Abhängigkeit, dass *.mount nur dann gestartet wird, wenn network-online.target aktiv ist?

Dies stellst du so her, dass *.automount eine "WantedBy=network-online.target" in [Install] hat und mit systemctl enable *.network-online.target aktiviert wird.
Wenn dann network-online.target gestartet wird, wird bei erfolgreichem Start (!!! Type=oneshot dieser Unit) des Netzwerks die automount-unit aktiviert.

Greifst du DANN auf den Mountpunkt zu, wird dieser erst durch den Zugriff gemountet.

Ich hoffe, es ist ein wenig verständlich :)

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von jue » 07.06.2017 12:36:26

Danke - ich habe es angepasst. Es scheint alles in Ordnung zu sein. Nur bei einer von 5 Freigaben bekomme ich beim Booten einen Fehlermeldung:

Code: Alles auswählen

Jun  7 12:21:40 Rechner systemd[1]: smb-keepalive@home-jue-Servername-Freigabe.timer: Refusing to start, unit to trigger not loaded.
Jun  7 12:21:40 Rechner systemd[1]: Failed to start smb-keepalive@home-jue-Servername-Freigabe.timer
Alle 4 anderen Freigaben scheinen in Ordnung zu sein - und ich finde nicht, was anders/unterschiedlich ist. Ich muss weiter suchen, werde dann berichten.

Update: die Fehlermeldungen sind beim Booten nicht immer gleich. Verschiedene Freigaben sind scheinbar betroffen. Im Betrieb funktioniert aber alles. Ich teste weiter ...
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 07.06.2017 15:18:37

Zeige einmal die Ausgabe von

Code: Alles auswählen

ls -l /etc/systemd/system/multi-user.target.wants/
Und führe einmal folgendes aus:

Code: Alles auswählen

systemctl disable home-jue-Servername-Freigabe.mount home-jue-Server2name-Freigabe2.mount
Also disable alle deine MOUNT-Units der smb-Mounts.

Dann führe

Code: Alles auswählen

systemctl reenable home-jue-Servername-Freigabe.automount home-jue-Server2name-Freigabe2.automount
und

Code: Alles auswählen

systemctl reenable smb-keepalive@home-jue-Servername-Freigabe.service smb-keepalive@home-jue-Server2name-Freigabe2.service
Und dann zeuge erneut die Ausgabe von

Code: Alles auswählen

ls -l /etc/systemd/system/multi-user.target.wants/
Gibt es in dem Verzeichnis "tote" Links? Die kannst du voraussichtlich auch entfernen.

Und dann boote neu.

Direkt nach dem Booten gib noch die Ausgabe von

Code: Alles auswählen

findmnt|grep -C5 "/home/jue"
und von

Code: Alles auswählen

systemctl --failed
her.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von jue » 07.06.2017 15:57:50

Code: Alles auswählen

ls -l /etc/systemd/system/multi-user.target.wants/
insgesamt 4
lrwxrwxrwx 1 root root 35 Mai 26 13:33 anacron.service -> /lib/systemd/system/anacron.service
lrwxrwxrwx 1 root root 40 Mai 26 13:36 avahi-daemon.service -> /lib/systemd/system/avahi-daemon.service
lrwxrwxrwx 1 root root 35 Mai 26 15:36 connman.service -> /lib/systemd/system/connman.service
lrwxrwxrwx 1 root root 41 Mai 26 13:01 console-setup.service -> /lib/systemd/system/console-setup.service
lrwxrwxrwx 1 root root 32 Mai 26 13:00 cron.service -> /lib/systemd/system/cron.service
lrwxrwxrwx 1 root root 40 Mai 26 14:05 cups-browsed.service -> /lib/systemd/system/cups-browsed.service
lrwxrwxrwx 1 root root 29 Mai 26 14:05 cups.path -> /lib/systemd/system/cups.path
lrwxrwxrwx 1 root root 34 Mai 26 15:36 dundee.service -> /lib/systemd/system/dundee.service
lrwxrwxrwx 1 root root 67 Jun  1 09:18 home-jue-Servername-Freigabe5.mount -> /etc/systemd/system/home-jue-Servername-Freigabe5.mount
lrwxrwxrwx 1 root root 52 Jun  1 09:44 home-jue-Servername-Freigabe1.mount -> /etc/systemd/system/home-jue-Servername-Freigabe1.mount
lrwxrwxrwx 1 root root 54 Jun  1 09:49 home-jue-Servername-Freigabe2.mount -> /etc/systemd/system/home-jue-Servername-Freigabe2.mount
lrwxrwxrwx 1 root root 52 Jun  1 10:05 home-jue-Servername-Freigabe3.mount -> /etc/systemd/system/home-jue-Servername-Freigabe3.mount
lrwxrwxrwx 1 root root 53 Jun  1 10:08 home-jue-Servername-Freigabe4.mount -> /etc/systemd/system/home-jue-Servername-Freigabe4.mount
lrwxrwxrwx 1 root root 38 Mai 26 13:53 irqbalance.service -> /lib/systemd/system/irqbalance.service
lrwxrwxrwx 1 root root 40 Mai 26 13:35 ModemManager.service -> /lib/systemd/system/ModemManager.service
lrwxrwxrwx 1 root root 38 Mai 26 13:00 networking.service -> /lib/systemd/system/networking.service
lrwxrwxrwx 1 root root 42 Mai 26 13:35 NetworkManager.service -> /lib/systemd/system/NetworkManager.service
lrwxrwxrwx 1 root root 33 Mai 26 15:36 ofono.service -> /lib/systemd/system/ofono.service
lrwxrwxrwx 1 root root 36 Mai 26 13:34 pppd-dns.service -> /lib/systemd/system/pppd-dns.service
lrwxrwxrwx 1 root root 36 Mai 26 12:58 remote-fs.target -> /lib/systemd/system/remote-fs.target
lrwxrwxrwx 1 root root 33 Mai 26 14:48 rsync.service -> /lib/systemd/system/rsync.service
lrwxrwxrwx 1 root root 35 Mai 26 13:00 rsyslog.service -> /lib/systemd/system/rsyslog.service
lrwxrwxrwx 1 root root 47 Mai 26 13:37 unattended-upgrades.service -> /lib/systemd/system/unattended-upgrades.service
Ich glaube, hier ist das Problem.

Code: Alles auswählen

systemctl reenable smb-keepalive@home-jue-Servername-Freigabe1.service smb-keepalive@home-jue-Servername-Freigabe2.service smb-keepalive@home-jue-Servername-Freigabe3.service smb-keepalive@home-jue-Servername-Freigabe4.service smb-keepalive@home-jue-Servername-Freigabe5.service
No such file or directory
Muss ich diese Dateien anlegen?
Es funktioniert eigentlich alles. Auch die Freigaben werden bei Nichtverwendung schön ausgehängt.

Code: Alles auswählen

root@rechner:/home/jue# systemctl --failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 07.06.2017 21:53:02

Ist die ls-Ausgabe bevor du die Moununits disabled hast?

Die smb-keepalive@.service muss vorhanden sein (in /etc/systemd/system/).
Die Services smb-keepalive@home-jue-Servername-Freigabe.service usw. sind sogenannte Instanzen der vorher genannten Unit und müssen nicht angelegt werden.
Du findest diese als Symlinknamen in /etc/systemd/system/home-jue-Servername-Freigabe.mount.wants/ der dann auf /etc/systemd/system/ftp-keepalive@.service verweist.

Wahrscheinlich hast du dich vertippt (irgendwo ein Leerzeichen zuviel), weshalb das File not found kommt.

Lg scientific
Zuletzt geändert von scientific am 07.06.2017 22:01:31, insgesamt 1-mal geändert.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von jue » 07.06.2017 21:56:29

scientific hat geschrieben:Ist die ls-Ausgabe bevor du die Moununits disabled hast?
Ich komme so langsam durcheinander - sorry - nein, das war zuvor ... ich bin die Schritte - einer nach dem anderen - gegangen, bis die Fehlermeldung "No such file or directory" kam.
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 07.06.2017 22:02:15

Ok. Bei meinem vorigen Post gibts ein update!
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 07.06.2017 22:02:36

Gib mir das ls jetzt nochmal!
Die Symlinks auf die mounts müssten jetzt weg sein!
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von jue » 07.06.2017 22:07:20

scientific hat geschrieben:Gib mir das ls jetzt nochmal!
Die Symlinks auf die mounts müssten jetzt weg sein!
Ich bin zuhause an meinem Rechner, nicht am betroffenen Rechner am Arbeitsplatz. Morgen kann ich erst weitermachen.
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von scientific » 07.06.2017 22:14:28

Ok.
Du kannst es selber kontrollieren.
In multi-user.target.wants/ dürfen keine Symlinks auf die Mount-units sein, dafür müssen in network-online.wants/ die Symlinks auf die Automount-Units sein.
Und zu jeder Mountunit muss es ein gleichnamiges Verzeichnis mit .wants am Ende geben, in dem nur ein Symlink zum smb-keepalive@.service ist.

Noch etwas:

Du hattest deine Mount-Units so:

Code: Alles auswählen

[Unit]
Description=Mount Network-Drives

Requires=network-online.target
After=NetworkManager-wait-online.service
Before=shutdown.target
Conflicts=shutdown.target
ConditionPathExists=/home/jue/Servername/Freigabe
Kontrolliere bitte, ob in /etc/systemd/system/home-jue-Servername-Freigabe.mount.requires ev. noch ein Symlink zu network-online.target drin ist. Diese bitte auch in jedem dieser .requires-Verzeichnissen für die Mounts löschen.

Die Datei /etc/systemd/system/smb-keepalive@.service existiert?

Die Fehlermeldung "No such File or Directory" beim reenablen checke mal bitte ab, ob und wann die kommt, wenn du die einzelnen Units reenablest. Also

Code: Alles auswählen

systemctl reenable smb-keepalive@home-jue-Servername-Freigabe1.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe2.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe3.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe4.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe5.service
Dem müssen wir noch nachgehen.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
jue
Beiträge: 411
Registriert: 25.11.2006 17:44:25
Wohnort: Mitteleuropa

Re: [gelöst] Verzeichnis von Windows-Server einbinden

Beitrag von jue » 08.06.2017 08:42:37

scientific hat geschrieben:In multi-user.target.wants/ dürfen keine Symlinks auf die Mount-units sein, dafür müssen in network-online.wants/ die Symlinks auf die Automount-Units sein.
Und zu jeder Mountunit muss es ein gleichnamiges Verzeichnis mit .wants am Ende geben, in dem nur ein Symlink zum smb-keepalive@.service ist.
Ja, das ist o.k. Die Symlinks auf die Automount-Units sind in network-online.wants
Aber in den *.wants sind die Symlinks auf die *.timer!
scientific hat geschrieben: Du hattest deine Mount-Units so:

Code: Alles auswählen

[Unit]
Description=Mount Network-Drives

Requires=network-online.target
After=NetworkManager-wait-online.service
Before=shutdown.target
Conflicts=shutdown.target
ConditionPathExists=/home/jue/Servername/Freigabe
Kontrolliere bitte, ob in /etc/systemd/system/home-jue-Servername-Freigabe.mount.requires ev. noch ein Symlink zu network-online.target drin ist. Diese bitte auch in jedem dieser .requires-Verzeichnissen für die Mounts löschen.
die *.requires finde ich nicht
scientific hat geschrieben:Die Datei /etc/systemd/system/smb-keepalive@.service existiert?
Ja.
scientific hat geschrieben:Die Fehlermeldung "No such File or Directory" beim reenablen checke mal bitte ab, ob und wann die kommt, wenn du die einzelnen Units reenablest. Also

Code: Alles auswählen

systemctl reenable smb-keepalive@home-jue-Servername-Freigabe1.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe2.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe3.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe4.service
systemctl reenable smb-keepalive@home-jue-Servername-Freigabe5.service
Das habe ich getestet, weil ich sichergehen wollte, dass ich mich nicht irgendwo vertippt habe, es kommt bei jeder *.service: Failed to reenable unit: No such file or directory
Zuletzt geändert von jue am 08.06.2017 08:49:19, insgesamt 1-mal geändert.
Ich gestehe es: ich liebe Smalltalk
问候
Jin Jue - 酒中有真
-----------------------------

Antworten