Grundlegende Befehle auf der Kommandozeile

Aus Synology Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Vorbemerkung

Wenn man sich z. B. über Telnet in der Kommandozeile der DiskStation befindet, kann man mit folgenden Befehlen grundlegende Funktionen ausführen.

Normalerweise kann man die Bearbeitung der Befehle mit Strg+C abbrechen.

Sicherheitshinweis zu TELNET und FTP

Telnet ist OK, solange man sich im eigenen Intranet befindet, wenn man sich jedoch aus einem anderen Netzwerk einloggen will sollte man den sicheren SSH Dienst (Port 22) nutzen, bzw. FTPES. Unverschlüsselte Protokolle wie FTP und Telnet sowie deren Ports, Port 20,21 (ftp) und Port 23 (telnet) sollten NIE von außen sichtbar sein. Ausser man setzt FTPES ein, welches die Firmware im Gegensatz zu SFTP (FTP via SSH) von Hause aus bietet

Ein schlauer Zug ist es in der SSH config den Port zu verlegen, z.B. auf einen sehr hohen Port, wie 22022 (soweit scannt dann kein Portscanner mehr). Das Problem ist nur dass Synology euch gnadenlos die Einstellung nach jedem Update wieder auf 22 setzen wird. Warum Synology das tut ist mir bis heute ein Rätsel.

Wichtiger als der Port von SSH ist es ein sicheres Passwort zu haben oder gleich nur Zertifikats-Login zuzulassen!

Midnight Commander

Kommandozeile Bearbeitung macht man am besten mit dem Midnight Commander, einer Norton Commander klone.
Installation per 'ipkg install mc'.
Er enthält 2 Wichtige Komponenten:

  1. Das Hauptprogramm, als eine Art Verzeichnis Explorer. Man startet Midnight Commander mit dem Befehl:
mc -c
  1. Der Midnight Editor, als Alternative zum vi (vollster Respekt, und tiefste Verbeugung vor vi :q!)
mcedit /pfad/zu/datei

Dateiverwaltung

In ein Verzeichnis wechseln

cd /directoryName

Wo befinde ich mich?

pwd

Verzeichnis erstellen

mkdir /directoryName

Verzeichnis anzeigen

dir
bzw.
ls

Größe eines Verzeichnisses mit Unterverzeichnissen anzeigen

du -ah /path/to/dir

Eine Datei suchen

find / -name fileName

Löschen einer Datei

rm fileName

Löschen eines Verzeichnisses mit Inhalt

rm -r directoryName
  • Achtung: nur mit größter Vorsicht verwenden

Umbenennen oder Verschieben einer Datei

mv /sourceDirectory/sourceFile /destination

Datei kopieren

cp /sourceDirectory/sourceFile /destination

Mehrere Dateien kopieren

cp /sourceDirectory/*.* /destination

stand 2011 lautet der Befehl:

cp /sourceDirectory/* /destination

Ein Verzeichnis mit Unterverzeichnissen kopieren

cp -r -p /sourceDirectory /destinationpath

Ein nicht-komprimiertes tar-Archiv (.tar) erstellen

Erstellt ein nicht-komprimiertes tar-Archiv aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis:

tar -cvf archivefilename.tar *

Ein komprimiertes tar-Archiv (.tgz) erstellen

Erstellt ein komprimiertes tar-Archiv aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis:

tar -cvzf archivefilename.tgz *

.tar Archive entpacken

Für nicht-komprimierte .tar Archive:

tar xvf file.tar

Für gzip komprimierte .tar.gz (oder .tgz) Archive:

tar xvzf file.tar.gz

System Verwaltung

Neustart der Synology Station

reboot

Herunterfahren der Synology Station

poweroff

Einen Prozess beenden

kill processID

Ein Programm beenden

killall programName

Aktuell laufende Prozesse anzeigen

top

Alle Prozesse anzeigen

ps -w

Sich das System-Logbuch anschauen

more /var/log/messages

Und wenn man das dynamisch haben will, quasi um eine log in realtime zu verfolgen

tail -f /var/log/messages

Sich das System-Start-Logbuch anschauen

dmesg | more

Ein IPKG-Programm suchen

ipkg list fileName

der Befehl "list" such nach einem genauen Pattern. Deswegen empfiehlt sich :

ipkg list *fileName*

Ein IPKG-Programm installieren

Voraussetzung dafür ist eine Installation von IPKG selbst

ipkg install fileName

grundsätzlich davor immer ipkg update

Ein IPKG-Programm deinstallieren

ipkg remove filename

Dienste neu starten

apache

/usr/syno/etc/rc.d/S97apache-user.sh restart

zur Kompatibilität mit anderen LINUX-en kann man sich einen kleinen Script basteln der dann auf apachectl [start|restart|stop] hört, und der dann auch in der $PATH ist.
(dazu einfach auf der Konsole als root folgende Befehle nacheinander eingeben.)

touch /usr/sbin/apachectl
echo "#!/bin/sh">/usr/sbin/apachectl
echo "/usr/syno/etc/rc.d/S97apache-user.sh \$1">>/usr/sbin/apachectl
chmod 755 /usr/sbin/apachectl

danach kann man den Webserver wie gewohnt mit apachectl [start|restart|stop] steuern

appletalk

/usr/syno/etc/rc.d/S81atalk.sh restart

cron

/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start

oder

ps |grep crond|grep -v grep|awk '{print $1}'|xargs kill -HUP

ftp

/usr/syno/etc/rc.d/S99ftpd.sh restart

index

/usr/syno/etc/rc.d/S66synoindexd.sh restart

iTunes

/usr/syno/etc/rc.d/S99iTunes.sh restart


ldap

/usr/syno/etc/rc.d/S10slapd.sh restart

zur Kompatibilität mit anderen LINUX-en kann man sich einen kleinen Script basteln der dann auf ldapctl [start|restart|stop] hört, und der dann auch in der $PATH ist.
(dazu einfach auf der Konsole als root folgende Befehle nacheinander eingeben.)

touch /usr/sbin/ldapctl
echo "#!/bin/sh">/usr/sbin/ldapctl
echo "/usr/syno/etc/rc.d/S10slapd.sh \$1">>/usr/sbin/ldapctl
chmod 755 /usr/sbin/ldapctl

danach kann man den LDAP Server wie gewohnt mit ldapctl [start|restart|stop] steuern

mysql

/usr/syno/etc/rc.d/S21mysql.sh restart

nfs

/usr/syno/etc/rc.d/S83nfsd.sh restart

postgresql

/usr/syno/etc/rc.d/S20pgsql.sh restart

samba

/usr/syno/etc/rc.d/S80Samba.sh restart

SSH

/usr/syno/etc.defaults/rc.d/S95sshd.sh restart

VPN Client

poff -a
pppd file /etc/ppp/peers/connect_*

Benötigt > DSM 4.0 und das Webinterface zeigt leider nicht an, dass man eine VPN Verbindung benutzt.

System Informationen

Systemspeicher

cat /proc/meminfo

CPU Infos

cat /proc/cpuinfo

Verwendete Interrupts

cat /proc/interrupts

Verwendete Dateisysteme

cat /proc/filesystems

Linux Version

cat /proc/version

Geräte

cat /proc/mdstat

Umgebungsvariabeln

env

Physische und logische Partitionen

Für Systeme mit mehreren Laufwerken und erweiterte Infos
cat /proc/diskstats

oder für alle Systeme

cat /proc/partitions

Sonstiges

Terminal/Konsole Bildschirm löschen

clear

Einen Dump in eine Datenbank importieren

/usr/syno/mysql/bin/mysql --user=root --password=mein-pw meine-db < /volume1/dir/mein-dump.sql

mein-pw, meine-db und mein-dump sind dabei entprechend zu ersetzen. Wenn der Dump utf-8-kodiert ist, kann ein zusätzliches --default-character-set=utf8 notwendig sein.

Unnötige Dienste stoppen

Konvertierung der Bilder stoppen (convert)

Bremst stark das Kopieren der großen Datenmengen und verbraucht Arbeitsspeicher auch wenn Photostation abgeschaltet ist.

/usr/syno/etc/rc.d/S77synomkthumbd.sh stop