Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


systemd:eigene_unit:path

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
systemd:eigene_unit:path [2017/02/08 10:29]
stefan_miethke
systemd:eigene_unit:path [2018/06/17 15:27] (aktuell)
stefan_miethke komplett neues Beispiel
Zeile 1: Zeile 1:
-===== Systemd Path-Activation ===== +====== Systemd Path-Activation ​====== 
-Ein Shell Skript +===== automatischer File Transfer ===== 
-<​file ​bash /usr/local/sbin/​compressor> +Voraussetzung:​ 
-#!/bin/sh+  * vm1 läuft 
 +    * ist mit ssh erreichbar und 
 +    * rsync ist installiert 
 +    * <file /etc/ssh/sshd.conf>PermitRootLoging=yes<​/file>
  
-[ -d /​var/​compressor/​input ]  || mkdir -/var/​compressor/​input && chmod 777 /​var/​compressor/​input +Auf der Mutti Schlüssel erzeugen (ohne Passwort) 
--d /​var/​compressor/​output ] || mkdir -/var/​compressor/​output && chmod 777 /​var/​compressor/​output+  ssh-keygen -t ed25519 -f .ssh/rsync_project_key 
 +und transferieren 
 +  ssh-copy-id -i .ssh/rsync_project_key.pub root@vm1 
 +Achtung: Jetzt haben wir eine brutale Sicherheitslücke :!:
  
-mv /var/compressor/input//var/​compressor/​output && xz /​var/​compressor/​output/​*+Deshalb besser für die Sicherheit -- auf der vm 
 +<file txt /root/.ssh/authorized_keys>​ 
 +from="​172.23.53.42",​command="​rsync --server -lHogDtpAXrSe.iLsfxC --delete . /home/project"​ ...
 </​file>​ </​file>​
 +Testen
 +  rsync -e "/​usr/​bin/​ssh -i /​root/​.ssh/​rsync_project_key"​ -ax -AHSX --delete -viP /​home/​project/​ root@vm1:/​home/​project
 +Eventuell ''​from=''​ weglassen und Pfad und/oder Options anpassen
  
-und das Unit-Service-File +In eine  
-<file txt /​etc/​systemd/​system/​compressor.service>​+===== Service-Unit ===== 
 +packen: 
 +<file txt /​etc/​systemd/​system/​syncvm1.service>​
 [Unit] [Unit]
-Description=Auto Compressor+Description=sync project to vm1
  
 [Service] [Service]
 Type=oneshot Type=oneshot
-ExecStart=/​usr/​local/sbin/compressor+ExecStart=/​usr/​bin/rsync -e "/usr/bin/ssh -i /​root/​.ssh/​rsync_project_key"​ -ax -AHSX --delete -viP /​home/​project/​ root@vm1:/​home/​project
 </​file>​ </​file>​
  
-mit der entsprechenden ​Path-Activation +und testen 
-<file txt /​etc/​systemd/​system/​compressor.path>+  systemctl start syncvm1.service 
 +Dateien auf vm1 überprüfen 
 + 
 +Jetzt kommt der 
 +===== Path-Trigger ===== 
 +dazu 
 + 
 +<file txt /​etc/​systemd/​system/​syncvm1.path>
 [Unit] [Unit]
-Description= ​Monitors /​var/​compressor...+Description=Trigger for sync project
  
 [Path] [Path]
-DirectoryNotEmpty=/var/compressor/​input +PathChanged=/home/project
-MakeDirectory=True+
  
-[Install] +#[Install] 
-WantedBy=multi-user.target+#WantedBy=multi-user.target
 </​file>​ </​file>​
- 
-  systemctl daemon-reload 
-  systemctl enable compressor.path 
-  systemctl start compressor.path 
- 
-Ausprobieren:​ Dateien kopieren und komprimieren lassen 
- 
  
systemd/eigene_unit/path.txt · Zuletzt geändert: 2018/06/17 15:27 von stefan_miethke