Linux

rsync Transfer automatisiert zwischen client und Server

Das Vorhaben und der Grund für diesen aufwand mal vorweg:

Ich hatte die Aufgabe eine Lösung zu suchen wie Daten von einem externen Rechner der stets Messdaten produziert, automatisiert zu Übertragen auf einen Server und dies auf einem gesichertem Wege.

FTP war dort aber nicht gewünscht und mit einem Windows Server nicht die sicherste Variante, jedenfalls in hinblick auf alte vllt auch aktuelle IIS FTP Versionen.

Somit erschloss sich die Idee einen Linux Server (in dem Falle Ubuntu Server 10.04 LTS) dort aufzusetzen.

Das Teil ist ja schnell installiert:

  1. CD rein und von dieser Booten
  2. Ubuntu Server installieren alles nach vorschlag
  3. Netzwerk anpassen mit statischer IP
  4. im Tasksel noch openssh Server und Samba ausgewählt und ab dafür
  5. Passwort setzen nicht vergessen 😉

 

Installation Ubuntu Server

Standard Installation

Feste IP vergeben / Netzwerk manuell konfigurieren

Oder später

user@server: nano /etc/networking/interfaces
## Ethernet Schnittstelle 0
auto eth0
# Beim Bootvorgang automatisch starten
iface eth0 inet static
address 192.168.0.97   # Zu benutzende Adresse
netmask 255.255.255.0  # Netzwerkmaske
gateway 192.168.0.1    # Standard-Gateway


Die resolv.conf prüfen

user@server:~ nano /etc/resolv.conf
nameserver ipvomnameserver
nameserver weiterednsip

 

OpenSSH Server bei installation oder später mit

apt-get install openssh-server

An den Clients mit Linux jeweils

user@client:~$ ssh-keygen
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
24:55:ee:67:83:72:82:55:5f:b9:b4:09:2a:fa:56:a1 user@client.local
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|         +    .  |
|        S    E   |
|         .  + +  |
|          .o . o.|
|         o.oo. oo|
|          ==o.BO+|
+-----------------+
user@client:~$
Key zum Server kopieren
user@client:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
Password:
Now try logging into the machine, with "ssh 'user@server'",
and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@client:~$
Test der Anmeldung
user@client:~$ ssh user@server
Enter passphrase for key '/home/user/.ssh/id_rsa':

 

SyncJob erstellen:
user@client:~$ nano script
#!/bin/bash
rsync -avzb /von/client/dir/ -e ssh user@serverip:/pfad/auf/server/
Script ausführbar machen:
 user@client:~$ chmod +x script

 

Samba installieren und einrichten

 

tasksel ausführen und samba auswählen dann mit

nano /etc/samba/smb.conf

bearbeiten und am Ende:

[Daten]
comment = Daten
read ony = no
writeable = yes
path = /home/user/files
guest ok = yes

einfügen

Dienst neu starten mit

/etc/init.d/smbd restart

 

Automatisieren von rsync

user@client:~ crontab –e
*/1 * * * * /pfad/zum/script  # script läuft  jede Minute
*/30 * * * * /pfad/zum/script  # script läuft alle 30 Minuten
* */1 * * * /pfad/zum/script  # script läuft jede Stunde
0 0 * * * /pfad/zum/script  # script läuft immer um Mitternacht
45 12 * * * /pfad/zum/script  # script läuft  immer um 12:45Uhr