Linux / Unix

Server-Update

Zuerst Update der Repository Liste (kann über /etc/apt/sources.list erweitert werden)

apt-get update

Dann eigentliches Paket-Update.

apt-get upgrade

Ganze Distribution updaten (theoretisch maximal 2x im Jahr)

apt-get dist-upgrade

Versionen prüfen

Die Ubuntu-Version kann mit dem Befehl

lsb_release -a

ausgegeben werden. Die Kerner-Version kann mit dem Befehl

uname -mrs

oder

uname -a

ausgeben werden.

Spracheinstellungen / Locales

Zuerst muss das entsprechende language-pack installiert werden mit:

aptitude install language-pack-de

Mit dem Befehl

locale -a

kann ausgegeben werden welche locales verfügbar sind.

Mit dem Befehl

update-locale LANG=de_CH.utf8 LC_MESSAGES=POSIX

Danach muss neu eingeloggt werden damit die locale aktiv ist.

Servername ändern

Es müssen die Dateien /etc/hostname und die entsprechenden Einträge in /etc/hosts geändert werden. Danach muss neu eingeloggt werden, damit der neue hostname beim Kommando-Prompt sichtbar wird.

Batch-rename a lot of files to lower-case

find ./ -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

IP und DNS-Einstellungen

Diese werden in der Datei /etc/network/interfaces eingetragen:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 10.63.228.6
netmask 255.255.255.224
gateway 10.63.228.1
dns-nameservers 10.63.228.2 10.63.229.2
dns-search yourdomain.ch

Danach muss der Service mit /etc/init.d/networking restart neu gestartet werden.

Zusätzliche IP-Adressen an eth0 (erstes Netzwerkinterface) binden

Mit folgendem Befehl kann man eine zusätzliche IP-Adresse an das erste Netzwerkinterface eines Linux-Servers (Ubuntu) binden:

ip addr add 178.63.xxx.xxx/28 dev eth0

Dieser Befehl fügt die IP einfach für den aktuell laufenden Rechner hinzu, aber nicht nach einem Neustart. Dafür muss man die folgenden beiden Zeilen in /etc/network/interfaces eintragen:

up ip addr add 178.63.xxx.xxx/28 dev eth0
down ip addr del 178.63.xxx.xxx/28 dev eth0

Hier noch ein nützliches Werkzeug um Netzwerkmasken zu rechnen: Subnet-Kalkulator

Zeitsynchronisation

Variante 1: über "net"-Kommando

Wird über das net time Kommando von Windows PDCs (Domänenkontrollern) synchronisiert. Externe Zeitserver können u.U. wegen der Firewall oder fehlendem NAT nicht kontaktiert werden.

net time -S srvxxx set

Die Synchronisation kann automatisiert werden über Crontab ("crontab -e" zum editieren):

5 1,13 * * * /usr/bin/net time -S srvxxx set

Dieses Kommando synchronisiert um 1:05 und 13:05 die Zeit mit dem PDC SRVxxx.

Variante 2: über "htpdate"

Download von http://www.clevervest.com/foswiki/bin/view/HTP/DownloadC - danach entpacken und mit "make" compilieren. Mit "make install" installieren (als root).

Manuelles setzen der Zeit funktioniert über den folgenden Befehl:

htpdate -ds -P yourproxy.server.com:8080 someexternal.www.server.ch someotherexternal.www.server.ch

Danach kann entweder ein daemon betrieben werden oder der Befehl per crontab ausgeführt werden wie folgt:

5 11 * * * htpdate -ds -P yourproxy.server.com:8080 someexternal.www.server.ch someotherexternal.www.server.ch

Timeouts bei ssh-Verbindungen verhindern

In der Datei /etc/ssh/sshd_config des ssh-Servers muss die folgende Zeile ergänzt werden:

# keep sessions through proxy alive (specified in seconds)
ClientAliveInterval 240

Danach mit /etc/init.d/ssh reload die Konfiguration neu laden.

SSH auf anderem Port betreiben als Port 22

Im File /etc/ssh/sshd_config folgende Zeile eintragen (ppp ist port-nummer):

ListenAddress 178.63.xxx.xxx:ppp

Firewall einrichten

Firewall mit

ufw enable

gestartet.

und mit

ufw disable

beendet.

Auflistung der bestehenden Regeln:

ufw status numbered

Löschen einer bestehenden Regel (x durch Regelnummer ersetzen):

ufw delete x

Protokoll von allen Rechnern aus erlauben:

ufw allow http

oder über Protokollnummer

ufw allow 5432/tcp

Service nur von bestimmten host oder localhost erlauben:

ufw allow proto tcp from 127.0.0.1 to any port 8080

Daten mit rsync synchronisieren

Mit folgendem Befehl kann man zwischen 2 Maschinen über ssh/scp Daten synchronisieren:

rsync -avz --exclude 'build' -e "ssh -l user" user@server1.yourdomain.ch:/home/user/folder_to_copy .

kopiert von einem Remote Rechner Dateien rekursiv in das aktuelle Directory in der lokalen Maschine. Die Option 'z' stellt den komprimierten Übertragungsmodus ein. Mit --exclude können Directories ausgeschlossen werden. Diese können auch in einem separaten File verwaltet werden.

Hier ein Beispiel um Daten von einem Rechner zum anderen zu kopieren:

rsync -rlpEAXogthv --exclude excluded_folder root@srvxxx:/home/* .

Nützliche Optionen:

r--recursive -
recurse into directories
l

--links

copy symlinks as symlinks
p

--perms

preserve permissions
E

--executability

preserve executability
A

--acls

preserve ACLs (implies -p)
X

--xattrs

preserve extended attributes
o

--owner

preserve owner (super-user only)
g

--group

preserve group
t

--times

preserve modification times
z

--compress

compress file data during the transfer
h

--human-readable

output numbers in a human-readable format
v --verbose

 

Siehe auch man-page.

Backup mit Tar - preserve owner/permissions and exclude files

Mit folgendem Befehl kann man ein Backup von einem Directory machen und owner/permissions erhalten:

tar -pcvzf backup.tar.gz --exclude='folder_to_backup/excluded_folder/*' --exclude='folder_to_backup/other_excluded_folder/*' folder_to_backup

p

preserve permissions
c
create a new archive
v
verbosely list files processed
z
filter the archive through gzip
f
use archive file

 

Beim Ausschliessen von Ordnern via 'exclude' sollte man hinten noch einen 'wildcard' (asterisk) anhängen und relative Pfade verwenden. Die Reihenfolge der Parameter spielt im Falle von 'exclude' eine Rolle.

Artikelaktionen
Sitemap AGB Impressum