Wichtige Linux Befehle

Exported from Notepad++
____ /@ ~-. \/ __ .- | // // @ ls -al = Zeigt die Dateien inkl versteke (.xxx) an. ls -altr –time=atime /tmp/*.cfg = Nach Acces Time sortieren ls -R | grep “:$” | sed -e ‘s/:$//’ -e ‘s/[^-][^\/]*\//–/g’ -e ‘s/^/ /’ -e ‘s/-/|/’ = lstree/tree top = Taskmanager ./XXX.XX = starte die Executable in dem Ordner wenn sie Linux nicht bekannt ist “. <XXX>” = starte ein Program in der aktuellen umgebung und NUR für die aktuelle Umgebung tail -f XXX.XX = zeigt an ob eine Datei im Zugriff ist und zeigt in realtime an. “tail -f /var/log/firewall /usr/sap/CB3/ASCS31/work/gw_log” = Zwei Files gleichzeitig beobachten tail -n +2 = Die letzten Zeilen anzeigen außer die Erste Zeile vi <Dateiname> = Texteditor shift r = überschreiben shift i = einfügen shift g = springt an das Ende der Datei :0 = springt an den Anfang der Datei gg = sprint an den Anfang :q! = ohne speichern raus :wq = mit speichern raus :w! = speichern trotz zu wenig rechte. dd = löscht eine Zeile entf = löscht nur den gerade hinzugefügten Text x = löscht einzelne Buchstaben im Text :.,$d = alle Zeilen löschen (“.” = Anfang der Datei, “$” = Ende der Datei) :u = Undo last changes :%s/search_string/replace_string/g = Suchen und Ersetzen “vi -x test.txt” = Verschlüsselt eine Textdatei yy = Kopierende Zeile markieren p = Paste zuvor markierte Zeile 100dd = löscht alle 100 Zeilen nach dem cursor :20,$d = löscht alles zwischen Zeile 20 und dem Ende ps -ef = zeigt alle laufenden prozesse an. ps -ef | grep -i XXX.XX | wc = Zählt die Prozesse einer Datei ps -ef | wc -l = zählt die Zeilen die ps ausspuckt ps -eLf = Zeigt auch alle Threads an ps axwo ‘stat uid pid ppid vsz rss pcpu comm args’ = commnad + argument anzeige “ps Haxwwo stat,pid,ppid,user,wchan:25,command | grep -e “^STAT” -e “^D” -e “^Z” ” = zeigt Zombies und uninterruptible sleep Sate Prozesse an. “ps aux | awk ‘{ print $5,$11}’ | grep -i jstart | grep -i smd | awk ‘{print $1/(1024*1024),”GB jstart_SMD”}'” = Einen bestimmten Prozess (greppen) und RAM (VSZ) ausgeben, berechnen. VSZ is the Virtual Memory Size. It includes all memory that the process can access, including memory that is swapped out and memory that is from shared libraries. RSS is the Resident Set Size and is used to show how much memory is allocated to that process and is in RAM. It does not include memory that is swapped out. It does include memory from shared libraries as long as the pages from those libraries are actually in memory. It does include all stack and heap memory. ” ps -ef | grep -i “\-\-color=always” | awk -F ” ” ‘{print $2}’ | xargs -I % kill % ” = Massenkill fals killall nicht mehr funktioniert oder das Suchmuster zu komplex ist mkdir = legt ein Verzeicnis an rmdir = lösche ein verzeichnis cp -frvp = Kopie mit Permissions, recursiv (Verzeichnis), ohne nachfragen überschreiben und anzeigen cp -nv include/* /usr/include/ = Kopieren aber am Zielstandort, fals diese Datei existiert, nicht überschreiben. cp –sparse=always -frv opensuse_15 /root/vm_backup/temp/ = Kopiert Sparse Files rm -frv = löscht alles ohne nachzufragen “find . -type f -print0 | xargs -0 rm -frv” = Falls ein Verzeichnis zu viele Dateien enthält, kann rm diese nicht mehr löschen “bash: /bin/rm: Argument list too long” . Deshalb via find die dateien löschen. Auch gut wenn die Inodes voll sind. “find . -iname “Y_*” | xargs rm -frv” = Löschen auch wenn die Inodes aus sind. “time find . -mtime +3 -print -exec rm -fr {} \; > /dev/null 2>&1” = Alle löschen die älter sind als 3 Tage ./sapinst = startet den Sapinst ./newinstall = bereitet den SAPinst für eine neue installation vor rlr servername = Verbindung zu einem Linux server rl <SID> = Verbindet direkt zur Zentral Instanz rsh -l a5tadm pwdf2635 DIR “C:\WINNT = Ataman check Befehl cd = wechselt in ein verzeichnis .. = geht ein Ordner tiefen … = geht 2 Ordner tiefer (….) gibts nicht. Alias für “cd ../../../..” usw. cd $(find . -inum 91881798) = Das Verzeichnis über die Inode Nummer zugreifen (ls -ali) export DISPLAY=<IP>:0.0 = Weist einer Maschien eine Xserver Oberfläche zu echo $DISPLAY = Zeigt an auf welcher IP/DNS und port der X-Server zeigt /etc/init.d = Start Scripte /etc/httpd = Apache Webserververzeichnis ./apache start/restart/status = Apche Webserver starten usw. su – <user> wechselt den Benutzer inklusive Environement. wenn man nur su macht wird nur auf root geswitcht “su – scom -s /bin/bash” = User Bash Shell übergeben. Fall in passwd auf false oder nologin grep = durchforstet einen Datei/Ausgabe gemäß den general expressions nach einem bestimmten suchkriterium. grep -v “alex” = alles zeigen außer alex grep -E “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}” = Regulaerer Ausdruck einer IP-Adresse grep -E “\b([0-9a-fA-F]{2}:??){5}([0-9a-fA-F]{2})\b” = MAC Adresse Reg Ex grep -w “se” = Exact Match grep -o \”D23#ES[^\”]* DBCLONE.ELG | sort -u = Match nur (-o) auf D23#ES ohne ” und gibt nur die verschiedenen aus (sort -u) wenn bei “cat /var/log/messages | grep -i jumbo” “Binary file (standard input) matches” dann “cat /var/log/messages | grep -a jumbo” “cat saprouter.log | grep -E “CONNECT FROM|CONNECT TO” = grept nach zwei Suchmustern, getrennt durch ein | . grep -A2 -B2 -i <Muster> = zwei danach (A) und zwei davor (B) und das Suchmuster ausgeben. cat read_file_infos.cpp | grep -v -e ‘^[[:space:]]*$’ = Alle Leerzeichen entfernen. cat *.cpp | grep -v -e ‘^[[:space:]]*$’ | wc -l = Alle Zeilen zählen aber nicht die Leerzeilen. env = Zeigt die Umgemungsvariablen an tcsh = T-Shell gut für SunOS uname -a = Anzeige was für ein System das ist ssh -l D044466 ld0082 -X = SSH X-Server forwarding auf den localhost ssh ceph-node1 “nohup /usr/bin/ceph-osd -f –cluster ceph –id 0 > /dev/null 2>&1 &” = Programm via Remote starten und in den Background schicken. ssh -o “UserKnownHostsFile=/dev/null” -o “StrictHostKeyChecking=no” user@host = Ohne Host Key verification verbinden scp -r -v * 172.17.190.44:”/usr/local/apache2/htdocs/data/root/files/Tech\ Docs/Linux/VPNopen/confs/client_to_site_minimal/” = SCP mit Leerzeichen kopieren who = Zeigt alle user die am System angemeldet sind und welches Terminal sie benutzen und von wo (IP/DNS) sie sich angemeldet haben whoami = Zeigt an mit welchem user ich angemeldet bin users = Zeigt alle user die am System angemeldet sind alias = Zeigt alles Pseudonyme für die Befehle an uptime = Zeigt an wie lange der PC an ist cat /proc/version = Gibt die Linux Version zurück cat /proc/cpuinfo = Zeigt die Anzahl und Eigenschaften des CPU/s cat /proc/meminfo = Zeigt wieviel RAM zur Verfügung steht cat = An sich gibt der Befehl den Inhalt einer Datei zurück, kann aber auch mehrere Datei zusammenführen mount = Zeigt alle gemounteten Verzeichnise/Geräte/NFS an mount -t <Dateisystem z.B. reiserfs> <Gerät z.B. /dev/hda1> <Mountpoint z.B. /root/platte> = Mountet eine Partition in einen Ordner mount.cifs //Striker/Public ~/netz/ -o user=root = Windows Netzlaufwerk mounten -> oder mount -t cifs //Striker/Public ~/netz -o user=root mount -t iso9660 <iso Image> <mount point> -o loop = Mountet ein Iso Image.”mount -t iso9660 winXP.iso /root/test -o loop”. Kann man gut als Installations Repository verwenden. umount -l //windows/share = falls der normale unmount fehlschlägt, kickt der “-l” Schalter Das Filesystem aus der Kernel Filesystem Hirachie. Besonders gut bei CIFS Mounts und OCFS falls Enpunkt nicht mehr antwortet. (umount force) “umount -a -t cifs -l” = löscht alle CIFS mount auf einmal “mount –bind mount2/ mount4/” = Verzeichnis mounten #Workaround für einen Hardlink als Verzeichnis mount -o bind /usr/lib /usr/lib64/ chmod <XXX> = Verändert die Rechte einer Datei/Verzeichnis. “chmod 777 test.sh” chown <XXX> = Verändert den Besitzer/Gruppe einer Datei/Verzeichnis. “chown -R root:root /tmp” “chown -h mysql:mysql mysql-bin.003025” = User Group eines Symlinks verändern find / -iname *Suchtext* > /tmp/gefunden.txt = Sucht nach einer Datei und gibt das Suchergebnis in eine Datei aus find / -iname “*clam*” = Findet via alles wo ein clam drin ist find / -mmin -5 -iname “*” = Findet alle Dateien die in den letzten 5 Minuten erstellt wurden find ~/temp/ -iname “asd” -exec rm -frv {} \; = Findes was und löscht es gleich. “find . -exec rm -frv {} \;” = lösch alles . Gut bei “rm: invalid option — ‘ ‘” , wenn irgendwelche exotischen Zeiechen im Dateinamen stehen. find / -iname “*pam*” -exec cp -fr {} /root/temp/ \; = Sucht was und kopiert es gleichzeitg wohin. find . -iname “*.h” -print0 -exec cp -fr {} /usr/include/ \; find . -type f -iname “*” -print0 | xargs -0 grep -i “Axe” = durchsucht alle Dateien nach einem Inhalt (Axe) “find / -size +10000k” oder “find / -iname ‘*.mp3’ -size -5000k”= Sucht alle Dateien die größer sind 10 MB “find . -inum 91881849 -exec mv {} new-directory-name \;” = Verzeichnis aufgrund der Inode umbenennen (ls -ali) “find . -inum 57671887 -exec cat {} \;” = Zeigt den Inhalt einer Datei anhand der Inode “find . -type f | wc -l” = Alle Dateien im Verzeichnis zählen “find ./ -iname “*icinga*.log” -mtime +30 -delete” = löscht alle Files die älter sind als 30 Tage “find . -mtime +90 -print | xargs tar -czvf audit_logs.tar.gz” = Findet alle Dateien die läter sind als 90 Tage und packt sie zusammen. “find . -iname “*.log” -mtime +90 -print | xargs tar -czvf /tmp/catalina_logs/catalina.log.tar.gz” = 90 Tage und nur *.log file packen “find . -iname “*.log” -mtime +90 -print | xargs -I % mv -v % /tmp/catalina_logs/” = 90 Tage und verschieben. “find ./ -mtime +30 | xargs -I % sh -c ‘tar -rf /tmp/idoit.tar %’;” = Unter SLES12 alle zusammenpacken die älter sind als 30 Tage. Ohne “sh” testen, da jedes mal ne neue Shell geöffnet wird “time find ./ -mtime +30 | xargs -I % mv -v % /home/sthi/i-doit_logs” = Alle moven die älter sind als 30 Tage “find . -iname “*Y_*” | xargs tar -czvf c_stack.tar.gz” “find . -daystart -ctime 0 -print” = Findet alle Files die heute erstellt worden sind. “find / -user <OLDUID> -exec chown -h <NEWUID> {} \;” = User/ID finden und gleichzeitig ändern “find / -group <OLDGID> -exec chgrp -h <NEWGID> {} \;” = Gruppe/ID finden und gleichzeitig ändern “find /cd_save/ -type d -exec stat –format ‘%Y :l%y %n’ “{}” \; | sort -nr | cut -d: -f2-” = suchen und nach Zugruffszeit (“ACCESS”) sortieren. “find /mukke/ -type f -exec ln -s {} . ‘;'” = findet alle Files und linkt sie ins Verzeichnis des Aufrufs. “find /mukke/ -type f -exec ln -s {} `date +%Y%m%d-%H_%M_%S_%N` ‘;'” = erstellt anstelle des Link Namen die Aktuelle Uhrzeit “find /mukke/ -type f -exec ln -s –backup=numbered {} . ‘;'” = erstellt anstelle des Link Namen den Link Namen inkl. ~<Nummer>~ “find . -mtime +`date +%j` -print -exec mv {} /mnt/cd_save/temporaer/AOOR/icinga_deploys/ \;” = Alle Files verschieben die aus dem letzten Jahr stammen. “date +%j” = Tagnummer des Jahres “find . -newermt “2010-01-01 00:00:00” ! -newermt “2013-12-31 23:59:59″ -print -exec mv -v {} /mnt/cd_save/temporaer/AOOR/diX_trans_logs/ \;” = Files zwischen Datum X bis Y verschieben. “find . -type f -print0 | xargs -0 stat –format ‘%Y :%y %n’ | sort -n” = Alle Files auflisten und nach Datum (mtime) sortieren “time find /var/www/vhosts/i-doit.bilfinger.net/log -mtime +30 | xargs -I % du -b % | sort -n | awk -F ” ” ‘{print $1}’ | paste -s -d+ – | bc” = Größer der Datei zusammen, die älter sind als 30 Tage “find . -exec touch \{\} \;” = Setzte alle Dateien und Verzeichnise auf das aktuelle Datum smbclient //10.19.199.128/D044466 -U D044466 -d 3 = Zugriff auf ein Windows Share via Samba im Debuglevel 3 “smbget smb://s001-01-00512.res1.rlaone.net/UnixAgents/DownloadedKits/scx-1.5.1-184.sles.11.×86.rpm -u aoor -w bb.bbmsg -p” = File downloaden //Striker/Public /root/netz cifs username=root,password=xxxx -> in /etc/samba # vi smbfstab = Automount von Windows Shares /etc/init.d/smb restart = samba neu starten /etc/init.d/nmb restart = samba neu starten stat <datei/verzeichnis name> = gibt Informationen über die Datei/Verzeichnis wie z.B. Zugriff, Größe usw. stat -c “%y” index.html = Gibt das genaue (millisekundenbereich) Erstelldatum an. /etc/inittab = legt das runlevel fest (5=mit Grafik, 3=ohne Grafik) /etc/samba (bei Suse) [in smb.conf-> wins server = <ip> ; server string = <Beschreibung>] /etc/motd = Willkommensnachricht ändern (gilt auch für SSH login) /etc/fstab = Datei in der die Auto gemounteten Laufwerke stehen ftp://ftp.gwdg.de/pub/linux/suse/opensuse/distribution/SL-10.1/inst-source/ = Online Installationsquellen hwinfo –short = zeigt Hardware Informationen an cat /var/log/boot.msg = Boot Protokoll w = Zeigt die aktuellen User auf dem System an und was für Programme sie ausführen last -ax = Zeigt die letzten logins an df -h = Zeigt Platteninformationen an fdisk = Partitioniert Festplatten Bsp. zu fdisk: “fdisk /dev/hda” wählt die erste Festplatte aus. dann im Menu auf m drücken und man bekommt eine Übersicht der Befehle. fdisk -l = Zeigt alle Partitionen an tar -cvf test.tar.gz * = ein tar Archiv erstellen tar –exclude=’/usr/sap/trans/EPS’ -zcvf trans.tar.gz /usr/sap/trans/ = Archiv erstellen mit Ausschlus von Verzeuchnis als gzip. tar -xzf trans.tar.gz -C trans_d24/ = Entpacken in ein bestimmtes Verzeichnis. tar -xzvf <dsniff-2.3.tar.gz> = tar.gz Datei entpacken tar -xjvf xxx.tar.bz2 = bz2 Datei entpacken tar -xf wine-0.9.47.tar = entpackt ein tar archiv. “tar cvzf – /export | split –bytes=5000MB – test.tar.gz.” = tar Archiv erstellen und in 5GB größe Blöcke splitten zum entpacken “cat test.tar.gz.a* > test.tar.gz” dann “tar -xzvf test.tar.gz” “split -b 1000M -d icinga_sles11sp3.tar split-icinga_sles11sp3.tar.” = Archiv im Nachgag splitten “split -b 1000K -d wordsEn.txt wordsEn.txt.” = Das splitten gilt auch für andere Dateien. “split -n 4 -d wordsEn.txt wordsEn.txt.” = In Vier gleich große Stücke spalten. “split -b 10 -a 10 /dev/random” = 10K Files erstellen vom Random Device bzip2 -d wine-0.9.47.tar.bz2 = bz2 Datei entpacken xclock -digital -update 1 = X Uhr in Digital anzeige mit Sekunden update date = Zeigt die aktuelle Zeit auf der Kommandozeile an “date –set 07:26:00” “date –set ‘2015-03-23 16:00:00′” “date -d @138269535” = wandelt die Unix Time (Sekunden nach dem 1.1.1970) in normale , lokale, Zeit um. “Fr 25. Okt 12:02:31 CEST 2013” “days=$((16912)); seconds_since_epoch=$((days*60*60*24));date -d”@$seconds_since_epoch” ” = Tage nach dem 1.1.1970. z.B. aus shadow Datei “echo $((`date –utc –date “$1″ +%s`/86400))” = Aktuelles Datum in Epoch Datum Ausgabe. “date +%j” = Tagnummer des Jahres “date +”%F %T,%N” = Zeit im Nanosekunden Bereich. noch genauer gehts nicht. “date +%V” = Kalender Wochennummer clock = Zeigt die aktuelle Zeit auf der Kommandozeile an (CMOS/BIOS) hwclock –systohc = setzt die CMOS Uhr zur Systemzeit ( date = clock) rpm -i -v (–nodeps) = Installiert ein rpm Packet (die abhängigkeit wird nicht überprüft) rpm2cpio ocfs2-tools-1.8.0-11.el6.src.rpm | cpio -idmv = RPM File entpacken rpm -qa = zeigt alle Installierte RPM Packet an.ls -a rpm -e Paketname1.rpm = Deintsallieren rpm -qa –last | tail -1 = Letztes Paket anzeigen bzw. Installationsdatum herausfinden. rpm -ivh –force = re/install auch bei Problemen zyper install /tmp/Paketname1.rpm = Packet installieren unter SuSE dpkg -i <packetname>.deb = Installiert ein Debian Packet /etc/init.d/sshd restart|start|stop = Den ssh Dämon restarten|start|stop “systemctl status sshd.service” = Restart mittels systemd scp -v -r <quelle> <ziel> = SSH Copy scp -v -r root@wenning.corp:~/temp/* /root/downloads/ = scp für Linux (Lin -> Lin = download) scp -v -r /root/uploads/* root@wenning.corp:/root/downloads = scp für Linux (Lin -> Lin = upload) find /root/dp1_export/ -type f | xargs -P 10 -I % scp % aoor@sles168.bb.bbmsg:/cd_save/temporaer/AOOR/dp1_ssh_test/ = SCP auf 10 Prozesse gleichzeitig parallelisieren . Zuvor Schlüssel austauschen, siehe ssh Doku. “eval `ssh-agent -s -t 120`” und “ssh-add -t 60 /root/.ssh/id_rsa”. Kann unter Umständen den Datentransfer um das 4 fache beschleunigen. du -ah <Verzeichnis> = Zeigt die Größe des Ordners inklusive Unterordner an “du -sh / –exclude=/proc/* –exclude=/var/lib/ntp/* –exclude=/mnt/*” = Zeigt die Größe der Ordner außer einem Unterordner an “du -h /var max-depth=1 |sort -nr” = sortiertnach Größe (Achtung auf einheiten achten KB und Mb werden nicht berücksichtig) “du -sk * | sort -n | while read size fname; do for unit in k M G T P E Z Y; do if [ $size -lt 1024 ]; then echo -e “${size}${unit}\t${fname}”; break; fi; size=$((size/1024)); done; done” = Gute Sortierung nach Größe “du -x –max-depth=1|sort -rn|awk -F / -v c=$COLUMNS ‘NR==1{t=$1} NR>1{r=int($1/t*c+.5); b=”\033[1;31m”; for (i=0; i<r; i++) b=b”#”; printf ” %5.2f%% %s\033[0m %s\n”, $1/t*100, b, $2}’|tac” = Anzeige sortiert. “du -h –apparent-size file” Zeigt die vorbelegten Speicherplatz an. Z.b. wichtig bei sparse files die mittels “dd if=/dev/zero of=test.img bs=1024k seek=10000 count=0” erstellt wurden. Ein normales “du -h file” zeigt null byte an mit “–apparent-size” 10MB “du -m –max-depth=1 | sort -n” = Zeigt die Größe aller Verzeichnise im ganzen an (treesize) screen = Virtuelle Terminals auf einem Physischem (ähnlich wie Virtuel Desktop) Zusatz zu screen: Mit dem Programm kann man Hintergrundprozesse laufen lassen. Einfach in screen ein Programm öffnen und dann den screen verlassen mit “strg+a+d”. nach dem man wieder im Hauptterminal ist, einfach mit “screen -r” die alte screen Session wiederholen und weitermachen. screen -r = Holte eine geschlossene Session zurück screen -r -D = Uebernimmt eine noch offene Session screen -x = Zeigt eine geöffnete Session mit an. screen -ls = Zeigt alles verfügbaren Screen Sessions an. screen -wipe = Eine tote Session löschen screen -dmS new_screen; screen -S new_screen -X stuff “date\n”; = Programm in einem neuen Screen aus dem Vordergrund öffnen. Kann später mittels “screen -r” attached werden. Bei mehrer screen`s muss der Name “hier new_screen” angepasst werden. ################## #Screen “Split Screen” “screen” “strg+a” und im zweiten Zuge “altgr+|” . Stellt einen vertikalen Screen da, “strg+S” eine horizontalen. Jetzt öffnet sich ein zweites Split Fenster. Das ist aber noch nicht in Funktion. Dazu nun mit “strg+a” und dann “tab” in das zweite Fenter springen, der Cursor (schwarzes kleines Kästenchen) steht nun links oben. In dem zweiten Fenster “strg+a” und danach “c” drücken, jetzt ist das Kommando Fenster frei 🙂 mit “strg+a” und dann “tab” kann man zwischen den Fenster springen. zum verlassen “strg+a” dann “d” . Um nun die beiden screens wieder zu attachen. “screen -r” dann “strg+a” -> “|” Splitfenster wird erzeugt in das zweite Fenster wechslen mit “strg+a” -> “tab” . Der cursor springt nun in das andere fenstern. Nun mit “strg+a -> 1” das zweite Fenster befüllen. Die Zahlen sind die Nummer der Sceeen Session. ################## nohup <binary> & = legt einen Prozess in den Hintergrud und bleibt aktiv auch wenn man sich ausgelogt hat. /etc/init.d = Hier liegen die Programme die beim booten automatisch gestartet werden (Einfach ein Programm hier reinkopieren) rsync -avrz –partial -e ssh -v -r root@wennhmb.dyndns.org:/root/alex/uploads/* /root/downloads/ = Partieller Download/Upload via rsync in einem Secure SSH Tunnel (Gut für große Dateien, da der download/upload da weitermacht wo er aufgehört hat) “time rsync -avrz -c –partial –progress –log-file=/var/log/rsync.log -e ssh -v -r root@172.17.190.10:’/usr/files/Tech\ Docs/*’ /root/temp/rsync_test/ ” = Erweiterte Optionen “time rsync -avrz -c –partial –progress –log-file=/var/log/rsync.log –delete -e ssh -v -r root@172.17.190.10:’/usr/files/Tech\ Docs/*’ /root/temp/rsync_test/” = Löscht die Datein im Zielverzeichnis wenn sie in der Quelle nicht mehr existieren. “time rsync -avrz -c –partial –progress –log-file=/var/log/rsync.log –stats –exclude=exclude_verz -e ssh -v -r root@172.17.190.17:/tmp/* /root/temp/ ” = Mit Statistik Anzeige und Exclue Unterverzeichnis . “time rsync -avrzc –partial –progress –log-file=/var/log/rsync.log –stats /mnt/di3_export/ABAP/ /export/” = rsync via Verzeichnisen ohne SSH. -c = “-c is for “checksumming”. “128-bit MD4 checksum” Logfile Infos: > – the item is received f – it is a regular file s – the file size is different t – the time stamp is different . – the item is not being updated (though it might have attributes that are being modified) d – it is a directory t – the time stamp is different > – the item is received f – a regular file +++++++++ – this is a newly created item o means the owner is different and is being updated to the sender’s value g means the group is different and is being updated to the sender’s value p means the permissions are different and are being updated to the sender’s value c means either that a regular file has a different checksum or that a symlink, device, or special file has a changed value. L for symbolic link D for device S for special file (e.g. socket or fifo) a means that the ACL information changed x means that the extended attribute information changed rdesktop -f <server> = Remote Desktop Connection auf einen Windows Terminal Server mit Vollbildmodus wget -v http://www.blabla.com/prog.zip = download von Software auf der Kommandozeile wget -v –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)” –timeout=1 –tries=3 -r -l10000 http://www.drbd.org/users-guide/ = Lädt die kompletten Verzeichnise inkl. Links runter. wget -c <url> = lädt einen Download dort weiter, wo der abbruch war. curl -O http://yum.mariadb.org/5.5.33a/fedora18-amd64/rpms/galera-23.2.7-1.fc18.x86_64.rpm = Alternative zu wget “curl –insecure -XPOST -v https://172.17.190.47/?p=1467” = POST kommunikation anzeigen. bei SUSE den Startscreen wechseln mit F2 mailx = Kommandozeilen Mail Client. Kommando: mailx <email adresse>. Dann Betref eingeben und Return drücken. Jetzt kann der Emailtext eingegebn werden. Zum senden der Email zum Schluss einen “.” Punkt in eine neue Zeile schreiben und via Return besätigen. Mit “d” löscht man eine email und mit “d*” alle. Mit “n” kann man die nächste mail anschauen. Mail mit Text Anhang versenden: mailx -s “SM4 Health Status” \ -S smtp=smtp://email.realtech.com:25 \ -S from=”sm4-status@realtech.com” \ alexander.wenning@realtech.com < /sapdb_backups/backup_scripte/df_h.txt \ brian.schneider@realtech.com < /sapdb_backups/backup_scripte/df_h.txt Mail mit Bild oder TAR Anhang versenden: snmpwalk -v 2c -c public localhost <optinal kann hier ein String Wert eingegebn werden z. B. “ssCpuRawNice”>= Zeigt alle SNMPv2 Möglichkeiten fg = holt Programme die im Hintergrund gestartet wurden (mit &), wieder in der Vordergrund. mkreiserfs /dev/hda1 = Formatiert die Partition hda1 mit dem ReiserFS Dateisystem /usr/src/linux/make menuconfig = Kongigurationsprogramm für den Kernel modprobe cryptoloop = Fügt hier das cryptoloop Kernel Modul dem Kernel hinzu modprobe -r cryptoloop = Entlädt das Kernel Modul wieder. modprobe -l = Zeigt alle Kernel Module an. rmmod cryptoloop = Entlädt das Kernel Modul wieder. xset b off = Das piepsen der xterm Bell abschalten free -m = Zeigt an wieviel RAM verwendet wird und noch frei ist sendmail -t <empfänger email adresse> = verschickt email an empfänger. Mit “.” abschliesen. echo “Nachrichten Text” | mail -s “Betreff” root@bit-devil.dyndns.org = Alles in einerm Rutsch versenden. rm -frv `ls -d * | grep -v ‘^<verzeichnis oder datei>$’` = löscht alles bis auch xxx nice <executable> <-20 – 19> / renice <pid> <-20 – 19> = einen Prozess eine höhrer/niedriegere Priroität zuweisen. A niceness of -20 is the highest priority and 19 or 20 is the lowest priority. http://openbook.galileocomputing.de/linux/linux_kap26_005.html renice -n 19 -p 13176 1326 ps -e -o uid,pid,ppid,pri,ni,cmd | grep -i sq ionice = setzt die IO Priorität fest. ionice -c 3 -p 13176 13265 export LANG=C Environemet Variable to C wechseln, default posix. “export” gilt aber nur für die bash und tcsh cat /etc/SuSE-release = Versionsinformationen zu SUSE Linux source /etc/profile = aktiviert das profile für das environement ln -s jdk1.5.0_07 java = legt ein symlink von jdk an iptables = Zeigt die IP Möglichkeiten rndc reload|status|stats|stop = administriert den named Bind DNS Daemon X-Server bei KDE beenden = kdeinit_shutdown (Mann kann auch ein anderes Display übernehmen via “export $DISPLAY=<ip oder keine IP für den lokalen gebrauch>:<0.0>” und jemanden anderen den X-Server beenden. “export DISPLAY=:0.0” -> “kdeinit_shutdown” fährt KDE/xorg runter wenn der admin/root angemeldet ist.) netstat -apn = Zeigt die Netzwerkverbindungen mit Programmen an in Zahlen ohne Namen netstat -nr = Zeit die “Kernel IP routing table” an. Fals bei “netstat -apn” keine PIDs oder Programme angeziet werden, mittels “lsof -i TCP:<Port>” das Pprogramme suchen lsusb = Zeigt die angeschlossenen USB Geräte an lsdev = HW anzeigen dmesg = zeigt Kernel Ringbuffer an ” alias kmsg=’dmesg | perl -ne “BEGIN{\$a= time()- qx!cat /proc/uptime!}; s/\[\s*(\d+)\.\d+\]/localtime(\$1 + \$a)/e; print \$_;”‘ ” = rechnet die Unix Zeit in normal Zeit um “cat /dev/kmsg” /usr/local/apache2/bin/apachectl -v = Zeigt die Version vom Apachen Webserver an kde& = startet den KDE Destop gnome-session& = startet den Gnome Destop (“startx” nicht benutzen, da sonst auf dem lokalen Server der Desktop gestartet wird) dd if=/dev/hda of=/dev/hdb = dump device. kopiert 1:1 den Inhalt der einen Festplatte auf die andere (ähnlich Ghost) inkl. Bootsector. “dd if=/dev/zero of=/dev/hda” löscht die Festplatte sicher, sodass Forensiker nichts lesen können bzw. überschreibt die ganze Platte mit lautern Nullen. “dd if=/dev/(u)random bs=2048 count=1M” = Das /dev/random Device via dump device mit Zufallszahlen füttern (Empfhelenswert ist es währenddessen auf der Tastatur rumzudrücken und sinnslos mit Maus zu wackeln). Das Gerät wird gebraucht um z.B. gpg Schlüssel zu generieren. “dd if=/dev/sda | ssh -vvv root@172.16.190.1 “dd of=/dev/sda” ” = Platte 1:1 übers Netz (SSH) abziehen inkl. Boot Sektor. Dauert seeeeehhhhhrrr lange, je nach größe der Platte. “time dd if=/dev/sda | gzip -c | ssh root@172.16.190.12 ‘dd of=/root/DATABASE/g4l_images/web_server_sda.img.gz'” = erstellen eine gezipptes Image lokale auf Server von Live CD. Sender “time ssh root@172.16.190.12 “cat /root/DATABASE/g4l_images/web_server_sda.img.gz” | gunzip -c – | dd of=/dev/xvda” = Zurückfahren des Images lokal auf Empfänger per Live DVD “dd if=/dev/mem | cat | strings” = Zeigt alle Strings im RAM an. “dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8” = BIOS lesen “dd if=/dev/zero of=/dev/null” = CPU Stress Test “fulload() { dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null & }; fulload; read; killall dd” = Für mehr Kerne. Enter lößt die Schleife auf “dd if=/dev/zero of=/root/public/xen/w2k8_platte.img bs=1024k count=100024” = Erstellt einen 100GB File mit nullen. Für OS sichtbar als 100GB aber real wird nichts belegt. “dd if=/dev/zero of=bigfile seek=999999T bs=1 count=0” = 977 Petabyte File (max bei BTRFS). “du -h –apparent-size bigfile” “dd if=/dev/zero of=xen_w2k8_r2_disk.img bs=1024k seek=100000 count=0” = 100 GB sparse File erstellen. mdadm = Tool zum erstelen und verwalten von Raid Arrays cat /proc/mdstat = Zeigt den Status des Raid Arrays an lsmod = Zeigt die geladenen Kernel Module an acpi -V = Zeigt ACPI Daten an wie z.B. Themperatur usw. sysctl = Ändert Kernel Paramater zur Laufzeit. z.B. “sysctl -w net.ipv4.conf.all.accept_redirects=0″ oder ” sysctl -w net.ipv4.conf.all.send_redirects=0″ oder vi proc FS “echo 1 > /proc/sys/net/ipv4/tcp_slow_start_after_idle” “sysctl -p” = lädt die config neu /etc/sysctl.conf unter “vi /etc/sysctl.conf” können auch die Parameter fest eingestellt werden. z.B. net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects =0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.eth0.send_redirects =0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.send_redirects =0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.lo.send_redirects =0 “cat /dev/random > /root/public/test.txt” = Füllt eine Datei mit Zufallszeichen iptables -L -v= Zeigt die IP-Tables Regeln an (iptables bzw. netfilter sind Kernel basierende Netzwerkfilterregeln) CTRL+ALT+ESC = Lässt sich das KDE schließen, wenn ein Fehler auftritt und der Desktop einfriert. “ifconfig eth0 172.17.190.2 netmask 255.255.0.0 up” = Setzt die IP Adresse der Netzwerkkarte ethtool eth0 = Zeigt eigenschaften von eth0 an. Z.B. Duplex Modus oder Speed usw. kill -s 9 <process id> = Löscht den Prozess auf jeden Fall (mit Signal 9 [SIGKILL]). kill <process id> = Löscht den Prozess killall <prozess Name> = Löscht den Prozess kill -19 <PID> = Prozess anhalten/pausieren Signal 19 #https://de.wikipedia.org/wiki/Signal_(Unix) kill -18 <PID> = Prozess fortfahren Signal 18 lspci = Listet alle PCI Geräte auf “/etc/init.d/nscd restart” oder “nscd -i hosts” = löscht den DNS cache equivalent zu Windows “ipconfig /flushdns” useradd -g nobody -s /bin/false -c “Spam User” spam-user = User anlegen “useradd -g users -s /bin/bash -c “NAME DER PERSON” <USERNAME> -u 50043 -d /home/aoor” = User mit ID anlegen “usermod -aG mail cyrus” = Benutzer Cyrus der Gruppe Mail hinzufügen “usermod -g GRUPPENNAME BENUTZERNAME” = Standardgruppe eines Benutzers ändern “deluser BENUTZERNAME GRUPPENNAME” = Benutzer aus einer Gruppe entfernen “usermod -s /bin/bash aoor” = Shell ändern “groupmod -A hr3adm oinstall” = den User hr3adm der Gruppe oinstall hinzufügen. “passwd spam-user” = Passwort für User XX ändern. passwd -e netways = Expired das Passwort sodass bein nächsten Login ein neues Passowrt vergeben werden muss. echo -n “Alexander” | openssl sha1 = gibt den sha1 Wert von Alexander zurück. ” printf ‘%s\n’ ‘pcre:”/\x7d[^a-zA-Z0-9\x2a\x0a]*\x2f/mR”;’ ” = Print alle Spezial Charachter auf Command Line cat test | openssl sha1 = Binärer Inhaltsstring einer Datei den SHA1 Hashwert berechnen. openssl dgst -hex -d -sha1 /dev/null = gibt den sha1 Wert des Gerätes bzw. Datei /dev/null zurück. hexdump s.exe | grep -i “7665\ 72” = Binäre Datei als Hex ausgeben. echo -n “p” | od -d = Zeigt den ASCII Wert von p an. ctrl+alt+backspace = X-Server hart restarten ldd -v <libraray> = Zeigt die “shared library dependencies” an. “ldd -v /usr/lib/libssl.so” time <Kommando> = Mist die Zeit zum Ausführen eines Befehls. “time sleep 2” Hier 2 Sekunden. apt-get install <Programmpacket> = Installiert ein Programmpacket mit Hilfe der apt Packetverwaltung für Debian. “apt-get install gcc” apt-get –reinstall install <Programmpacket> = Installiert das Programm drüber cpan <perl modul> = Installiert online ein Perl Modul. “cpan Net::SMTP” chkconfig <dienst> on/off = Legt ein Programm in den Autostart . “chkconfig openexchange on” chkconfig master_start_script.sh 3 = Legt fest das das Script im Runlevel 3 gestartet wird insserv -r master_start_script.sh = Löscht das Script aus allen Runlevel Ebenen xauth = X-Server Shell. Listet z.B. die Zugänge und Cookies auf, die Connection zum X-Server aufbauen. “xauth -> list” sed = Ersetzt Zeichen nach Regulären Ausdrücken (StreamEDitor). “sed ‘s/alert/drop/’ datei.txt > datei_neu.txt” = Ersetzt das Wort alert duch drop aber nur wenn das Wort alert alleine steht. “sed ‘s/alert/drop/g’ datei.txt > datei_neu.txt” = Ersetzt das Wort alert duch drop im kompletten Text, auch wenn es zwischen Wörtern steht. Hier ein kleines sed Script: ################################################################################# #!/bin/sh for fname in $(find . -name “*.rules” -print) do sed ‘s/alert/drop/’ ${fname} > ${fname}.new && mv ${fname}.new ${fname} done ################################################################################# Das Script sucht im Verzeichnis alle Dateinen mit der Endung “*.rules ” und ersetzt den Inhalt der gefundenen Dateien von alert nach drop bzw. schreibt den alten Namen der Datei wieder hin. lvm = Allgeminer Befehl zur Administration von LVM Vloumes. lvm lvdisplay = Zeigt aktive LVM Vloumes. lvm pvs = Zeigt die physikalischen Festplatten zu einem LVM Vloumen an. “eject /dev/cdrom” = öffnet das CD-Rom Laufwerk und “eject -t /dev/cdrom” schliesst es wieder “vi /etc/sysctl.conf -> kernel.panic = 10” bzw. “echo 10 > /proc/sys/kernel/panic” = 10 Sek. nach einer Kernel Panic (Bluescreen 😉 ) wird der PC neu gestartet. “iwconfig” = Zeigt Information über die Wireless LAN Karte an. “iw*” Tools zum konfiguieren von W-LANs. “cat /proc/net/wireless” Statistik über W-LAN Karte “vconfig” = Zeigt Informationen über ein Virtuelles LAN an. “fsck.ext3 -v -p /dev/sda2” = Filesystem check im laufenden Betrieb, nicht empfehlenswert. Gerät wenn es geht erst unmounten. Check Disk (chkdsk) “e2fsck” = für ext3/4 Dateisystem “fsck -fy /dev/sda1 = Lassen sich eventuelle Filesystem Fehler beheben. “ulimit -a” = Zeigt die maximal Anzahl an Prozessen an die ein User starten kann. “ulimit -u unlimited” = setzt die max. Anzahl von Prozessen pro User auf unendlich. Nur zur Laufzeit. “setserial -g /dev/ttyS0” = Serielle Schnittstelle testen “lsof” = Zeigt alle offenen (in Benutzung sich befindenen) Dateien und Verzeichnisse “fuser -v /root/oncloud_share” = Zeigt an wer auf das Verzeichnis zugreift “fuser -mv /usr/sap/p20_trans” = Zeigt an wer auf das Verzeichnis zugreift. Obacht bei Kernel Prozessen wie NFS, diese werden nicht expliziet angezeigt. “fuser -k /root/oncloud_share” = killt den Zugriff. #da dieser Befehl meist in Zusammenhang mittels eines nicht unmountbaren Filesystems genutz wird, gibt es noch die alternative mit “umount -l /usr/sap” . “dd if=/dev/zero of=/dev/hda bs=512 count=1” = MBR löschen und Partition Table (für nur MBR bs=446) “dd if=/dev/hda of=/home/richmondg/mbr_backup bs=512 count=1” -> “dd if=/dev/sda/mbr_backup of=/dev/hda bs=512 count=1” = MBR und Partitionstabelle sicher und wiederhelstellen) “udevadm monitor” = Zeigt Hardware ereignisse in echtzeit “free -m; swapoff -a && swapon -a; free -m;” = leert den SWAP Speicher. Aber Achtung füllt den normalen RAM 🙁 “swapon /dev/swap_vg/swap_lv” = SWAP on the fly aktivieren, wenn zuvor angelegt wurde. “sync; echo 3 > /proc/sys/vm/drop_caches” = Chache leeren. “sudo -u root ls -al /root/ “= führt das Kommando als root aus. Passwortabfrage kommt. Achtung SUDO cacht Passwörter. “echo test1234 | sudo -u root -S ls -al /root/ ” = ließt das Passwort von der Kommandozeile ein. “sudo -k” = löscht das gecachte passwort “sudo -u scom -H bash” = Weist dem User die Bash zu. Geht auch wenn in der passwd ein /bin/false oder nologin steht “sudo -u scom -H bash -c ‘ls -al /tmp/’ ” = Führt Kommando unter Shell aus, auch wenn in der passwd nologin oder fals steht “echo “- – -” > /sys/class/scsi_host/host1/scan” = Soft Rescan des SCSCI Buses (“cat /proc/scsi/scsi”). Nötig wenn neue Platte hinzukommt. “echo 1 > /sys/class/scsi_device/4\:0\:5\:0/device/resca” = direkter rescan einer Platte. Gut falls sich die Größer zur OS Laufzeit geändert hat. Z.B. in einer VM . “echo 1 > /sys/block/device-name/device/delete ” = SCSI Aus Linux (Kernel) löschen “echo 1 > /sys/class/scsi_device/h:c:t:l/device/delete” = SCSI Aus Linux (Kernel) löschen “rescan-scsi-bus.sh -a” = Tool von SUSE zum Scannen. “mount -o remount,size=8G /dev/shm” = Shared Memory auf 8 GB setzen oder “vi /etc/fstab” -> “tmpfs /dev/shm tmpfs defaults,size=8g ” “modinfo ip_set” = Zeit Kernel Modul (Treiber) Infos an “lsattr” = Listet Datei Attribute auf “chattr -i <Dateiname>” +i Make the file as Read-Only. -i Remove the Read-Only. +a Can’t open file for writing. -a Open file for writing. +S The changes in the file are written synchronously on the disk. “tune2fs -l /dev/sdb1” = Zeigt Filesysteminformationen an “tune2fs -i 0 /dev/sdb1” = Filesystemcheck beim booten verhindern. Kommt normalesweise alle 90 Tage oder X reboot vor. “cat /proc/sys/kernel/hostname” = Hostanem identifizieren “hostname” = Hostanem identifizieren “echo -n “realcloud.realtech.com” > /proc/sys/kernel/hostname” = Hostanem zur Laufzeit neu setzen. “file /bin/ls” = gibt an ob eine Datei 64 oder 32 bit ist uvm. “bc” = Commandozeilenrechner Syntax #Fakultät define fact (x) { if(x < 1) return 1 return (x*fact(x-1)) } fact(10) #normales rechnen 1+1 # “echo “1 + 1″ | bc” “time echo “define fact (x) {;if(x < 1) return 1;return (x*fact(x-1));} fact(10) ;” | bc” dauer bei “fact(999999)” ca. 700min und es kommt eine Zahl mit 5MB großer Textdatei dabei raus 🙂 #Pi Berchnung “time echo “scale=3000; 4*a(1)” | bc -l” #Ping Durchschnitt ausrechnen ping 127.0.0.1 | while read pong; do echo “$(date): $pong”; done >> ping_zeit.txt cat ping_zeit.txt | awk -F ” ” ‘{print $13}’ | awk -F “=” ‘{print $2}’ > ping_zeit_2.txt cat ping_zeit_2.txt | xargs | sed -e ‘s/\ /+/g’ | bc .185 cat ping_zeit_2.txt | wc -l 4 echo “4 / .185” | bc #Anzahl Pings durch Gesammtzeit #Skalierung der Kommastellen echo ‘scale=4; 100 – ((7 / 426) * 100)’ | bc #75% der zur Verfügung stehenden CPU Kerne ausrechnen “echo “(`cat /proc/cpuinfo | grep -i processor | wc -l` * 75)/100″ | bc” #Lokalen Plattenplatz zusammenrechnen in GB df -kl | grep -i mapper | awk -F ” ” ‘{print $3}’ | paste -sd+ | bc | xargs -I % echo ‘% / 1014 / 1024’ | bc “echo ‘1’ > /proc/sys/net/ipv6/conf/all/disable_ipv6” = IPv6 on the fly deaktivieren. oder “net.ipv6.conf.all.disable_ipv6=1” in sysctl ??? verifizieren unter SuSE “ld /usr/lib/libreadline.so” = Testen ob einen Bibliothek korrekt linken kann. “ld -lzlib –verbose” systemctl = SystemD start Initiator Statusrückgabe. Der Erstazt für systemV bzw. sysvinit . Autostart “vi /etc/systemd/system/master_start_script.service”-> [Unit] Description=My script [Service] ExecStart=/root/scripte/master_start_script.sh [Install] WantedBy=multi-user.target “systemctl enable master_start_script.service” bzw. “systemctl disable master_start_script.service” “systemctl is-enabled master_start_script.service” “systemctl status master_start_script.service” “systemctl poweroff” = My computer shuts down “systemctl list-units –failed” = Zeigt an ob der Deinst fehlgeschlagen ist “systemctl status network.service -l” = Zeigt infos zum Servce an. “systemctl restart network.service” = Netzwerk restarten “echo -n “mem” > /sys/power/state” = System in den Winterschlaf versetzen “uuidgen” oder “cat /proc/sys/kernel/random/uuid” = UUID generieren. “watch -n 1 ‘cat /proc/meminfo'” = zeigt alle sekunde den inhalt von meminfo an “while true; do dmesg -c; sleep 1; done” = Watch Funktion bei dmesg (ohne reale Datei) “while true; do diff file.log file_diff.log | grep -v 10.64 | mail -s “Betreff” alexander.moore@bilfinger.com ; cp -frv file.log file_diff.log ; sleep 10; done” = Alle 10 Sekunden prüfen ob sich der Inhalt einer Datei geändert hat “binary >> logfile.log 2>&1” = Output umlenken falls das normale “>” nicht funktionier. Geht auch unter Windows 😉 “blkid” = UUDI zur Festplatte heruasfinden. Dient dazu die Platten über die UUID via fstab zu mounten, damit sie bei hardware wechsel nicht vertauscht werden. “ls -al /dev/disk/by-uuid/” = UUID zur den Platten. Beispiel für Mounts in der fstab: UUID=54ec35e6-7393-4e73-aaa3-b280623f435f swap swap defaults 0 0 UUID=418039b5-8f9b-4298-99de-c4d87a944a4b / ext3 acl,user_xattr 1 1 UUID=f10200a6-0065-456f-ae50-966798742fb6 /boot ext3 acl,user_xattr 1 2 UUID=884738d4-69d7-48e8-b756-9aa5c3f71259 /sapdb_backups ext3 acl,user_xattr 1 2 UUID=14d471eb-9f88-4fe1-bf94-392b5cf53c4b /sapdata1 ext3 acl,user_xattr 1 2 UUID=a263fd61-1e32-421f-a030-a760cf6cd89e /sapdata2 ext3 acl,user_xattr 1 2 UUID=5a99f43a-6332-4517-9f5d-ddebb8d91cb4 /sapdata4 ext3 acl,user_xattr 1 2 UUID=9239fbf5-1b24-43a5-a499-f5dd3876de71 /sapdata5 ext3 acl,user_xattr 1 2 UUID=c191d2da-2c8b-4267-9ebf-f6b5fd01ef4c /saplog1 ext3 acl,user_xattr 1 2 “git clone https://git.fedorahosted.org/git/cluster.git” = GIT Repository clonen “export GIT_SSL_NO_VERIFY=true” = SSL überprüfung abschalten “git config http.sslVerify false” = SSL überprüfung abschalten journalctl = Abfrage der Systemd Logs bzw. des “fast” kompletten System Logs (Ablösung von syslog) journalctl -b | grep -i charon = Ausgabe mit grep`en journalctl -f = Fortlaufende Anzeige journalctl -k -f = gleich dmesg, fängt aber unten an und fortlaufend. “journalctl -k” setzt oben an “crontab -e” = Editiert die Cron Tabelle. “crontab -l” = Inhalt anzeigen “loadkeys de” = Deutsches tasturlayout “setxkbmap de” = Deutesches Tastaturlayout aktvieren “ss” = Zeigt Netzwerkverbindungen an, ähnlich “netstat” “hostnamectl” = hostname anzeigen “hostnamectl set-hostname test-apache” = Hostname festlegen. http://www.freedesktop.org/software/systemd/man/hostnamectl.html “echo 1 > /proc/sys/kernel/sysrq ” “echo 0 > /proc/sysrq-trigger” = System hart ausschalten “hdparm” = get/set SATA/IDE device parameters Performance Test “hdparm -t /dev/sdb” “hdparm -T /dev/sdb” “time dd if=/dev/zero of=ddfile bs=8k count=250000 && sync” 2 GB File “echo noop > /sys/block/sda/queue/scheduler” = I/O Scheduler ändern. http://www.thomas-krenn.com/de/wiki/Linux_I/O_Scheduler “cat /sys/block/sda/queue/scheduler” “echo 0 > /proc/sys/vm/swappiness” = SWAP verhalten ändern. In diesem Fall möglichs nicht swappen (default 60) . Quele: http://juliusbeckmann.de/blog/linux-speichermanagement-tunen-swappiness.html “smartctl -a /dev/sda” = Zeigt die Smart Festplatten Daten an “time badblocks -vv /dev/sdb” = Festplatten Block Test (im Test read-only Modus) “time badblocks -w -vv /dev/sdb” = Schreibmodus geht nur wenn die Platte ungemounted ist. ACHTUNG zerstört Filesystem !!! . Kann mehre Stunden dauern. “strg + r” =letzte Befehle suchen bzw. direkt ausführen. (reverse-i-search) “sdiff snort.conf snort.conf.org_temp” = Uterschiede aufzeigen bzw. syncronisieren. “diff -y -W 200 /etc/postfix/main.cf /etc/postfix/main.cf.rpmnew” “diff file_org.log file_diff.log | grep -v 10.64” = Zeigt alle Diffs an außer 10.64 cp -frv file.log file_diff.log; diff file.log file_diff.log | grep -v 10.64 | mail -s “Betreff” alexander.moore@bilfinger.com = Schnelllösung für unterschied Zeitlich begrenzt von einem File “diff” = Unterschiede anzeigen “diff -r -q dir1 dir2” = Unterschiede in Verzeichnisen anzeigen “strings /usr/lib64/libstdc++.so.5 | grep CXXABI” = Zeigt alle Druckbaren Strings eines Files an. “stty erase ^?” = fals beim backspace bzw. Zeichen löschen ein ^? kommt kann man das damit entfern bzw. auch mit strg+backspace die zeichen löschen “stty size” = Zeilen Zahl Ausgabe “stty rows 999” = Terminal (putty / ohne xterm) auf 999 Reihen erweitern. “xterm -sl 99999 &” = Xterm mit 99999 scrollbaren Zeilen laden “cat /etc/issue” = Linux Version “echo $?” = gibt den Integer Return Wert des letzten Programms zurück. “echo $$” = gibt die PID des aktuellen Shell zurück “readelf -a /lib/libXVZ” = ELF File Informationen. “iostat -Nmx 1” = IO Auslatung anzeigen im 1 sec. Interval “vimdiff /file1 /file2” = Vi Form Anzeige von diff “iptraf” = Wirehsark für die Kommandozeile “bash -x /<script>” = Debug Shell Script “cat < /dev/tcp/172.17.190.17/22” = Open Port Test ohne nmap oder netcat. “svn checkout http://linux-iscsi.org/svn/trunk/” = SVN (Subversion) Repository herunterladen. “echo ‘rm -frv /tmp/conf.d/* > /var/log/cron.log 2>&1’ | at 16:35” = AT Kommando Schedulen. Vorher “atd” starten. “xargs –null –max-args=1 echo < /proc/110001/environ | grep -i HOME” = Herausfinden unter welchem Envrionemt die PID läuft. Hier PID vom httpd “zgrep -e striker messages-20160310.xz” = Grep im gepackten File “timeout 10s top” = Task eine bestimmte Zeit (10s) laufen lassen. “strg+alt+backspace” = X-Server beenden bzw. auf Kommandozeile wechseln. “strg+alt+f1 f2 etc” = Fentser durch wechseln ftp ftp://<USER>:<PASSWORT>@<SERVER>:21/Folder/File.txt = per FTP in einem Kommando einen File downloaden “cat /var/log/firewall | grep -oE “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}” | grep -vE ‘8.8.8.8|172.17’ | sort -u | xargs -l nslookup | grep -i “name =” ” = Spezial nslookup aus Firewall log und mit ausnahmen. “strace postfix start > strace_log.txt 2>&1” = Stack Trace und in File umlenken “strace -f /usr/sbin/postfix start” = Traced auch die Child Prozesse (Fork() / Threads) “strace -e trace=network ./$BOOTSTRAPSKRIPT” = Nur Netzwerk Tracen “write weber pts/6” = Eine Meldung über das Terminal schreiben an User Weber und Terminal tty6 Test Message strg + D “cat nagios_hosts.txt icinga_hosts.txt | sort | uniq -d” = Duplikate in zwei Files anzeigen. “cat md5_sum_DATABASE_20170406.txt md5_sum_DATABASE_BACKUP_20170411.txt | sort | uniq -u > unterschied.txt” = Unterschiede in zwei Files anzeigen und gleich/doppelte Einträge ignorieren. “cat nagios_hosts.txt | tr [A-Z] [a-z] > nagios_hosts_klein.txt” = Großzeichen in Kleinzeichen umsetzten “tr -cd ‘\11\12\15\40-\176’ < server_liste.txt > server_liste_real_UTF8.txt” = alle “non-pritable (Binary) character entfernen. “ipcs” = Shared Memory / Semaphores anzeigen “ipcs -s -i 262148” = Semaphore Details ansehen “ps -ef | grep -i <semaphore pids>” = Prozess zur Semahpore anzeigen “cat /proc/29444/cmdline” = Prozess zur Semahpore anzeigen “cat /proc/sys/kernel/sem” = Semaphore Limits anzeigen “ipcs -l” = Semaphore Limits anzeigen “echo 500 512000 64 2048 > /proc/sys/kernel/sem” = Semaphore Limits erhöhen. http://manpages.ubuntu.com/manpages/wily/de/man5/proc.5.html “while true; do ipcmk -M 20 -S 1; done” = Test um Semaphore zu füllen. “touch -a -m -t 198112191513 test_file.txt” = Datum der Datei ändern (modifiy, Access) “touch -a –date=”1988-02-15 01:00:17.547775198 +0300″ test_file.txt” = etwas sprechnder “debugfs -w -R ‘set_inode_field /root/temp/test_file.txt ctime 201001010101 test_file.txt’ /dev/sda2; echo 2 > /proc/sys/vm/drop_caches ” = Creation Time ändern (ctime). geht nur bei einem ungemountetet Filesystem ext2,ext3,ext4 “touch file_nr_{0001..0003}.txt” = 3 File erstellen “lynx https://pypi.python.org/pypi” =Python Paket Index “python setup.py install –record files.txt” = Installiert ein Python Packet “cat files.txt | xargs rm -frv” = Python Files deinstallieren “time sleep $[ ( $RANDOM % 10 ) + 1 ]s; <KOMMANDO>” = Zuffalszeit schlafen und danach ein Kommando ausführen ip a = IPs anzeigen “ip route show cache” = Routing Chache Inhalt “ip -s route show cache” = Routing Chache Inhalt “lynx https://vincent.bernat.im/en/blog/2011-ipv4-route-cache-linux” “ip route show cache 149.249.150.58” 149.249.150.58 via 149.249.5.1 dev eth3 src 149.249.4.32 cache mtu 1500 advmss 1460 fragtimeout 64 149.249.150.58 from 149.249.4.32 via 149.249.5.1 dev eth3 cache mtu 1500 rttvar 21ms cwnd 3 advmss 1460 fragtimeout 64 “ip -s route show cache 149.249.150.58” 149.249.150.58 via 149.249.5.1 dev eth3 src 149.249.4.32 cache users 1 used 5 age 49sec mtu 1500 advmss 1460 fragtimeout 64 149.249.150.58 from 149.249.4.32 via 149.249.5.1 dev eth3 cache users 1 used 9 age 49sec mtu 1500 rttvar 21ms cwnd 3 advmss 1460 fragtimeout 64 “lnstat -s1 -i1 -c-1 -f rt_cache” = Routing Chache “cat /proc/net/stat/rt_cache” “ip route flush cache” = Routing Cache leeren “ip route add 0/0 via 172.17.190.250” = Route setzen “ip addr add 172.17.190.134 dev eth0” = IP Adresse setzen “ping 10.20.0.110 | while read pong; do echo “$(date): $pong”; done >> /mnt/cd_save/temporaer/ping_sles216_auf_nfs.txt” = Ping mit Datum “objdump -T /usr/lib64/libreadline.so | grep -i tgoto” = Refernzen einer Bibliothek anzeigen “objdump -d druck_knopf” = Asembler Code anzeigen readelf -s ./.libs/libevent_openssl.so | grep -i BIO_set_data nm ./.libs/libevent_openssl.so | grep -i BIO_set_data “vlock” = Lockt das Terminal (nur bei SLES std. Installiert) “dmsetup info /dev/dm-7” = info was sich hinter dem “dm” verbirgt “lvdisplay | awk ‘/LV Name/{n=$3} /Block device/{d=$3; sub(“.*:”,”dm-“,d); print d,n;}'” = zeigt welche dm ID, welches LV hat “mknod /dev/null c 1 3” = Null Device (Geräte Datei) erstellen. Vorischt wenn kein /dev/null vorhanden ist, geht kein SSH Login mehr “chmod 666 /dev/null” “mknod -m 0660 /dev/loop0 b 0 0” = Loop Device erstellen “cat /sys/devices/system/cpu/cpu[0-3]/cpufreq/scaling_cur_freq” = Aktuelle CPU Freuquenz “taskset 1 top ” = Program dem 1 CPU/Core zuweisen “XXXXX | xargs -t -I{} salt {} cmd.run hostname” = xargs List und Position der Übergabe Parameter {} . Prozent % geht auch. “cat host_liste.txt | xargs -t -I{} ping -c 1 {} > ping_antworten.txt” “iconv –verbose –from-code=iso-8859-1 –to-code=UTF-16 flags.txt > flags_UTF16.txt” = Charset eines Files convertieren. Zuvor mittes “file -i <filename>” ermitteln. ” for file in /proc/*/status ; do awk ‘/Tgid|VmSwap|Name/{printf $2 ” ” $3}END{ print “”}’ $file; done | grep kB | awk -F ” ” ‘{print $3 ” KB SWAP”,$2 ” PID” , $1 ” NAME” }’ | sort -n ” = Wieviel KB SWAP nutz ein Prozess. “for file in /proc/*/status ; do awk ‘/Tgid|VmSwap|Name/{printf $2 ” ” $3}END{ print “”}’ $file; done | grep kB | awk -F ” ” ‘{print $3 ” SWAP”,$2 ” PID” , $1 ” NAME” }’ | sort -n | awk -F ” ” ‘{print $1}’ | paste -s -d+ – | bc” = Berechnung des belegten SWAP Speichers. Gegegncheck mit “free -k” “java -jar ums.jar” = Jar File ausführen “bash -c ‘exec -a DummyPorcess sleep 365d’ &” = Dummy Process starten un 365 Tage schlafen lassen. “cat zahlen_vorrat | shuf -n 5” = 5 Zufallszahlen aus einem Zahelnvorrat ziehen. “shred -vn 10 /dev/sda” = Platte sicher löschen bzw. mit Zufallszahlen und Nullen 10 mal vollschreiben. Manuell geht das auch mit dd “/lib64/libc.so.6 –version” = GlibC Versionsinformation “ldd –version” “zdump /etc/localtime” = Lokale Zeit anzeigen “tzselect” = Zeitzone Einstellen “loginctl” = Control the systemd login manager “loginctl terminate-session $session” = Eine Session beenden “cat /proc/net/tcp” = netstat ohne netstat __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Konfigurationen: Bei Neuinstallation SuSE und Fedora: Ab OpenSUSE 42 gibt es zwei Versionen “Tumbleweed” & “Leap” . Leap basiert mehr auf SLES und Tumbleweed auf OpenSUSE. Wobei Tumbleweed ein Roling Release ist und Leap ein stabieler. Deshlab Leap bevorzugen. Darauf achten, das die BIOS Zeit aktuell ist, da sonst die GPG-Schlüssel/SHA1 (Signaturen) nicht überprüft werden konnen. Fehler: “cd:/content: Invalid signature.” #Installieren################################################### /boot Partition sollte mind. 500 MB groß sein für weitere Kernel. ACHTUNG: Bei ällteren PC`s darf die Boot Partition nicht über 128 GB (LBA2) liegen. Deshalb eine extra boot Partition erstllen 5 GB #Ab openssue 15.0 wird die Platte als GPT eingerichtet, daher muss eine min. 8 MB Große BIOS Boot Partition vorhanden sein. Besser wieder auf MBR umstellen. #Ab Open Suse 15 unbeding während des Platten Setup auf MBR umstellen (im Yast beim Partitionioeren: Expert/Modify -> Create New Partition Table). Danach LVM nach Standard einrichten. Warung “Missing Device for / ” ignorieren. Filesystem Layout SLES11/SLES12/openSUSE/Leap: Dateisystem ext4 oder XFS auf keinen Fall BTRFS NAME MAJ:MIN RM SIZE RO MOUNTPOINT xvda 202:0 0 97.7G 0 ├─xvda1 202:1 0 2.5G 0 /boot #Primär 1 └─xvda2 202:2 0 97.4G 0 #Primär 2 unformatiert als LVM ├─system-home (dm-0) 253:0 0 1G 0 /home ├─system-opt (dm-1) 253:1 0 5G 0 /opt ├─system-root (dm-2) 253:2 0 4G 0 / #Für Kernel 5.X Ab Opensuse-15 mind. 5 GB # Für Kernel 4.16+ um 2GB vergrößern. ├─system-swap (dm-3) 253:3 0 10G 0 [SWAP] ├─system-tmp (dm-4) 253:4 0 4G 0 /tmp ├─system-usr (dm-5) 253:5 0 7G 0 /usr #Um 20 GB (Krnl 5.x) vergrößern für neue Kernel Sourcen. # lvextend -L+20G /dev/system/usr # btrfs filesystem resize max /usr # xfs_growfs -d /usr # resize2fs -p /dev/system/usr (bei ext3_4) └─system-var (dm-6) 253:6 0 4G 0 /var sr0 11:0 1 3.2G 0 /media/SLES-11-SP4-DVD-x86_6412211 #Ab Open Suse die extra Packete nach Online Repositoryanbindung installieren Kernel Sourcen Kernel-default. Ab SuSE 11 will Yast den Kernel PAE Support installieren gcc Qt libs (aber auf keinen Fall die 32 Bit Libs bei einem 64 Bit OS) libqt4-devel X libs(xorg) KDE libs GNOME libs. “libgnome” und “libgnome-devel” lynx ddd mc (midnight Commander) [perl (mit cpan)] GIT vlock lsb lsb-release #Nicht installieren############################################# snapper VNC (Open)Office Mozilla (Firefox & Thunderbird) AppArmor Samba (Aufpassen libsmbclient wird unbedingt von KDE gebraucht) beagle/tracker (ist ab SuSE 11.3 abgelößt durch tracker) NFS (libnet (ab SuSE 11.1 installiert sich libnet automatisch mit. Wenn geplant ist snort-inline zu betreiben, nicht installieren)). Besser nachträglich deinstallieren, da syslog von abhängig. MySQL #Bei der Konfiguration############################################ Instal Bootcode in MBR und /boot bootbar machen root Passwort Verschlüßelung = mind. Blowfish oder AES256 IPv6 deaktivieren Firewall deaktivieren Netzwerkmodus traditionel mit ifconfig #Post Konfiguration############################################ OpenSUSE 15.0 Post Installation via yast nach online repositioy connect /usr auf insgeammt 10 GB erweitern #lvextend -L+3G /dev/system/usr # btrfs filesystem resize max /usr # xfs_growfs -d /usr # resize2fs -p /dev/system/usr (ext3_4) moreutils net-tools-deprecated kernel-source gcc libqt4-devel GNOME libs. “libgnome” und “libgnome-devel” git lynx ddd rsyslog telnet (zypper in telnet) vlan ############################################ Icinga Monitorung Anschluss und Plug Ins nscd (names service cache daemon) ausschalten. “mv /usr/sbin/nscd /usr/sbin/nscd.org” oder “systemctl disable nscd.service” dnsmasq powersaved ausschalten. “mv /usr/lib/systemd/systemd-logind /usr/lib/systemd/systemd-logind.org” oder “systemctl is-enabled systemd-logind.service” -> “systemctl disable systemd-logind.service” oder “vi /etc/systemd/logind.conf” -> “HandleLidSwitch=ignore” postfix auschalten sofern nicht email Kommunikation nötig ist. (systemctl disable postfix.service) (/sbin/service postfix status) ODER im postfix Mail relay eintragen: “vi /etc/postfix/main.cf” -> relayhost = 172.17.190.33 “postfix stop; postfix start” “echo `hostname` | mail -s “`hostname`-mailtest” -r root-`hostname`@bit-devil.no-ip.org root@bit-devil.no-ip.org” avahi Daemons. “systemctl disable avahi-daemon.socket” und “systemctl disable avahi-daemon.service” CUPS Daemon “systemctl disable cups.path” bzw. “systemctl disable cups” smartd Daemon. “systemctl disable smartd.service” splash Screen Daemon PATH Variable für alle Profile bearbeiten/anpassen (/usr/local/lib und ../include hinzufügen) IP-Adressen, DNS, Routen etc. anpassen. X-Server-Profile anpassen (.Xdefaults, .bashrc, usw.) Runlevel 3 (“vi /etc/inittab”) ab openSuse 12.1 übernimmt systemd das booten: “rm -frv /etc/systemd/system/default.target” -> ” ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target” für 3 oder ” ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target” für Runlevel 5 “acpi=off” damit beim zuklappen des laptops der pc nicht in den Winterschlaf geht um systemV das Initiieren wieder zu überlassen “vi /boot/grub/menu.lst” -> “init=/sbin/sysvinit” und noch “highres=off” damit man was sieht. Ab opeSuSE 12.2 ist grub2 der neue Bootloader 🙁 “vi/boot/grub2/grub.cfg” -> im ersten großen Menüeintrag “linux /vmlinuz-3.4.6-2.10-desktop root=UUID=4b17e89b-f196-4411-a48c-d7cd8443ea8d resume=/dev/sda3 vga=normal init=/sbin/sysvinit highres=off showopts” Ab openSUSE 12.3 ist SystemD nun komplett integriert. “rm -frv /etc/systemd/system/default.target” -> “ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target” für 3 “vi /boot/grub2/grub.cfg” -> im ersten großen Menüeintrag “linux /vmlinuz-3.4.6-2.10-desktop root=UUID=4b17e89b-f196-4411-a48c-d7cd8443ea8d resume=/dev/sda3 vga=normal highres=off showopts acpi=off” Willkommensnachricht ändern (“vi /etc/motd”) Boot screen deaktivieren (“vi /boot/grub/menu.lst” -> vga=normal) Ab openSuse 12.2 siehe Eintrag “Runlevel 3” Installationsquellen ändern (NFS DVD) NTP Server auswählen (rts.wenning.corp bzw. ptbtime1.ptb.de) init.d master_run_level_script.sh bearbeiten logrotate anpassen (messages usw.) “vi /etc/logrotate.d/messages.log” bzw. “vi /etc/logrotate.d/syslog” “vi /etc/sysconfig/network/config” -> Damit die DNS Server in der “vi /etc/resolv.conf” abgearbeitet werden NETCONFIG_DNS_STATIC_SERVERS=”auto” rsyslog (ab SuSE 11.4 -> “vi /etc/rsyslog.conf”) Ab openSuse 13.2 ist der systemd-log aktiv. Um wieder auf rsyslog umzuschlaten einfach per yast rsyslog installieren. ab Tumblewee 42.1 gibt es kein ifconfig mehr. Mittels Yast installieren “net-tools-deprecated”. Alternativ Ggf. auditk abschalten. “systemctl disable auditd.service” #Housekeeping############################################################# “rm -frv /var/log/journal” BTRFS blancing in VM abschalten sowie siehe BTRFS Doku. BTRFS Houskeeping Scripte “sync; echo 3 > /proc/sys/vm/drop_caches” = Bei langsamen Maschienen alle 15 min. crontab “*/15 * * * * root /root/scripte/sync_drop_chache.sh” #Post Installationen and Order############################################ kernel(Crypto,Netfilter,Quota,Cluster,Net/FileSystem) ab SuSE 11.0 ist die Kernel Einstellung “PAE” (mehr als 4 GB RAM bei 32 Bit[36BIT]) Ab SuSE 10.3 / Debian Etch sind die “capabilities” Bibliotheken defekt, deshalb neu installieren. Siehe dazu NTP Dkou. gcc (Aber nur wenn dringend notwendig, da sehr kompliziert) gdb (nur falls gcc update durchgeführt wurde) sslOpen, sslLibre iptables/nftables, IPSet, ARPtables, ebtables, conntrack tools sshOpen samba NFS htop sysstat nmon iftop iotop nethogs tcpdump (vorher libpcap) #Docker Image erzeugen. Sieh Docker Doku socat ACHTUNG: Darauf achten das die Systemuser/Emailuser nur auf die /bin/false Shell kommen, damit sie sich nicht remote mäßig, insbeondoers per ssh, einlogen können. “vi /etc/passwd”. Einfach /bin/bash in /bin/false umändern. Darauf achten das alle angelegten Dateien und Verzeichnise klein geschrieben sind, keine Sonderzeichen enthalten und voralendingen keine Leerzeichen (gibt mit make[gcc] Probleme). Bei Suse 10.1 und SLES 10 alternative Installationquellen. Einfach bei Suse 10.1 die DVD Version runterladen und in ein Verzeichnis kopieren ohne sie zu entpacken. Jetzt bei Yast2 unter “Installationquelle wechseln” das Verzeichnis des ISO Files angeben. Das geliche gilt für SLES10. Nun braucht man die CDs nicht mehr einlegen wenn man was nachinstallieren möchte. Installation bzw. Compilation mit make files: In das zu Compilirende Programmverzeichnis wechseln, dann “./configure” eintippen. Daraufhin “make” eintragen und zum Schulß “make install” eingeben. “make -j4” = benutz 4 Cores zum kompilieren. gcc Kommandos: g++ -Wall -o <Name des Executables> <prog.cpp> <header.h> usw. = Mehere Header einbauen: g++ -c -Wall -O2 ssh_action_alert.cpp = Compiliert als Object File (*.o) g++ -Wall -g -o ssh_action_alert ssh_action_alert.cpp = Compiliert als Debug Modus (für ddd notwendig). g++ -Wall -o ssh_action_alert ssh_action_alert.cpp = Compiliert als release executable, ohne Debug Funktion. Shell Scripting: Sobald ein Shellscript erstellt wurde muss dem System noch sagen, das das eine ausführbare Datei ist “chmod 777 oder 755 oder u+x script.sh”. cron Jobs: Die Jobs die in zeitlichen Abständen wiederholt werden heisen bei Suse Cron Jobs. Die Konfigurationsdatei liegt unter “vi /etc/crontab”. So sieht beispielsweise eine Zeile in der crontab aus, bei der eine Datei jede Minute wiederholt aufgerufen wird: */1 * * * * root /root/rrdtool/process.sh >> /var/log/monitoring.log Partitioniern/Formatieren anhand des Beispiels der Festplatte “/dev/sdb”: “fdisk /dev/sdb” aufrufen. Dann “p” drücken um zu sehen ob schon eine Partion existiert. Mit “n” erstellt man einen neue Partition. “e” oder “p” drücken um den Partitionstyp festzzulegen Extendet oder Primär. Bei “p” danach “1” eingeben da wir nur eine Primäre Partition erstellen wollen. Nun die Start- und Stop- Cylinder der Festplatte auswählern “1” und “1044” oder “+100GB” für 100 GigaBytes. Mit “w” wird fdisk verlassen und die Partitonstabelle geschrieben. Mit dem Befehl “mkreiserfs /dev/sdb1” formatieren wir die Primäre Partion mit dem ReiserFS Dateisystem. Oder mit dem ext3 Dateisystem. “mkfs.ext3 /dev/hda1” bzw. “mkswap /dev/hda2” und “mkfs.ext3 /dev/hda3”. Partitions IDs in HEX: 83 = Linux etx(3) 82 = Linux swap Linux Swap Partition erstellen Mit “fdisk” partitionieren (ID 83) Mit “mkswap” formatieren Beim booten einhängen “vi /etc/fstab” Zur Kontrolle “cat /proc/swaps” Zur Kontrolle “cat /proc/meminfo” Zur Kontrolle “free -m” “e2label /dev/realcloud_data_vg/realcloud_data_lv realcloud_data” Namen vergeben. # #Partition größer 2TB erstellen. Leider funktioniert das nicht mehr mit fdisk “parted /dev/sdb” mklabel gpt print -> max. größe entnehmen mkpart primary 0GB 3006GB oder besser “mkpart primary 0 100%” quit “parted -l” “fdisk -l” “mkfs.ext4 /dev/sdb1” “cat /proc/partitions” GPT Partitiontablle wieder in MSDOS(MBR) zurückwandeln “parted /dev/sdb” “mklabel MSDOS” #Automatisiert. hier /boot vergößern bzw. neue Partition am Ende der Platte anhängen mkdir -p /root/platte mount /dev/mapper/tmp/ /root/platte/ dd if=/dev/xvda1 of=/root/platte/boot.img parted /dev/xvda print free parted /dev/xvda rm 1 parted /dev/xvda print free parted /dev/xvda mkpart primary $(parted /dev/xvda unit s p free | grep -i “Free Space” | tail -n 1 | awk -F ” ” ‘{print $1}’) $(parted /dev/xvda unit s p free | grep -i “Free Space” | tail -n 1 | awk -F ” ” ‘{print $2}’) parted /dev/xvda print free dd if=/root/platte/boot_date.img of=/dev/xvda1 parted /dev/xvda print free parted /dev/xvda set 1 boot on parted /dev/xvda print free reboot SWAP on the fly ohne zusätzliche Partition erstellen “dd if=/dev/zero of=swap.img bs=1024k seek=100000 count=0” “losetup -a” “losetup /dev/loop0 swap.img” “fdisk /dev/loop0” Primäre Partition anlegen (siehe Abschnitt: “Partitioniern/Formatieren anhand des Beispiels der Festplatte “/dev/sdb”:”) “mkswap /dev/loop0” “swapon /dev/loop0” “free -m” Inodes erweitern: Methode 1: “vi /etc/mke2fs.conf” “df -I” “Umount /root/mount_punkt” “tune2fs -l /dev/sda1 | grep -i inode” Vorsicht alle Dateien auf dem Laufwerk werden gelöscht !!! “mke2fs -N 9999999 /dev/sda1 oder mke2fs -i 67108864 /dev/sda1” “tune2fs -l /dev/sda1 | grep -i inode” Methode 2: “debugfs -w /dev/sda1 -R ‘features'” “tune2fs -O ^ flex_bg /dev/sda1” “tune2fs -I 8192 /dev/sda1” Show Label “ls -l /dev/disk/by-label” Das piepsen des PC Speakers beim xterm abschalten Ersteimal die Datei “vi .bashrc” erstellen Dann in die Datei “xset b off” schreiben, nun ist der Piepston ausgeschaltet Tasten Funktionen im Xterm einstellen Die Datei “vi .Xdefaults” erstellen. Dann in die Datei folgende Zeilen hinzufügen: xterm.vt100.Translations: #override \ <Key>F1: string(“exit\n”)\n\ und so weiter. Rechte Einstellungen: Aufbau der drei Rechte Eigentschaften bzw. Besitzer: <Owner —><Group —><Others(Gast)—> Rechte in Dezimal/Oktal Werten (chmod): 0 — 1 –x 2 -w- 3 (= 2+1) -wx 4 r– 5 (= 4+1) r-x 6 (= 4+2) rw- 7 (= 4+2+1) rwx Prinzip einer Linux Formatierung und Partitionierung: Um Linux zum Laufen zu bekommen benötigt es theoretisch 3 Partitionen (/boot muss Primär sein der Rest kann auch auf einer erweiterten Partition liegen). Eine /boot Partition mit dem Kernel und dem Boot Loader (ext3 formatiert). Eine Swap Partition zum Auslagern von Arbeitsspeicher (linux-swap formatiert). Und eine / root Partition auf der alle Programme abgelegt sind (ext3 formatiert). MAC-Adresse ändern: “if down” “ifconfig eth0 hw ether 01:02:03:04:05:06” oder “vi /etc/sysconfig/network/ifcfg-eth0” -> LLADDR=’01:02:03:04:05:06’ TCP/IP MTU: Die Standardgröße der maximalen Packetgröße bei Ethernet(IP) ist 1500 bytes. “ping -s 1500 -M do filehunter” genau ein Packet mit 1500 bytes wird gesendet, kann aber nicht gesendet werden da es die max. Packetgröße(+ Header usw.) überschreiet. Um die IP Packetgröße zu ändern muss man folgenden Befehl schreiben “ifconfig eth0 mtu 1024”. Allerdings geht bei SuSE die Packetgröße nicht über 1500 bytes hinaus, sofern der Switch das nicht unterstützt. Jumbo Frames: “ifconfig eth0 mtu 9000” oder “ip link set dev eth0 mtu 9000” “netstat -i” “ping -M do -s 8972 172.16.190.27” Allerdings kommt es bei SSH (Putty Windows) zu Problemen, da SSH für eine MTU von 1500 bytes ausgelegt ist. Datei Endungen: Dateienen mit *.ko sind Kernel Module. NFS: Die zentrale Datei zur Freigabe von shares liegt unter “vi /etc/exports” -> “/root/public 172.16.0.0/16(rw,anonuid=0,anongid=0)” bash: In der Datei “vi ~/.bash_profile” werden initial einmal pro Session die Environement Paramater gesetzt. Z.B.: PATH=/usr/local/bin:$PATH export PATH In der Datei “vi ~/.bashrc” werden/können Environement Parameter zur Laufzeit innerhalb einer Session geändert werden. Z.B.: xset b off In der Datei “cat ~/.bash_history” werden die letzten 1000 Befehl aufgelistet die in der Bash ausgeführt wurden. Man kann auch die Farben der Bash ändern. Einfach die Umgebungsvariable PS1 (bzw. PSx) ändern. z.B. : export PS1='[\[\033[34m\]\t\[\033[0m\]] [\[\033[32m\]\u@\h\[\033[0m\]] \$ ‘ das sieht dann so aus: [06:06:12] [root@filehunter] # Die Uhr ist baul und der Name ist grün. export PS1='[\[\033[32m\]\u@\h\[\033[0m\]] \$ ‘ so wäre z.B. nur ein grüner Name. Und nun in türkis: export PS1='[\[\033[1;36m\]\u@\h\[\033[0m\]] \$ ‘ Ein letztes Beispiel: “export PS1='[\[\033[32m\]\u@\h\[\033[32m\]]: \w \$ ‘” das sähe dann so aus “[root@filehunter]: ~/public #” alles in grün. Hier eine kleine Farbcode Tabelle: Farbcode Farbe \[\033[30m\] Schwarz \[\033[1;30m\] Dunkelgrau \[\033[31m\] Rot \[\033[1;31m\] Hellrot \[\033[32m\] Grün \[\033[1;32m\] Hellgrün \[\033[33m\] Braun \[\033[1;33m\] Gelb \[\033[34m\] Blau \[\033[1;34m\] Hellblau \[\033[35m\] Dunkellila \[\033[1;35m\] Helllila \[\033[36m\] Dunkeltürkis \[\033[1;36m\] Türkis \[\033[37m\] Hellgrau \[\033[1;37m\] Weiss Farbcode Hintergrundfarbe \[\033[XXm\] Keine Hintergrundfarbe \[\033[40;XXm\] Schwarzer Hintergrund \[\033[41;XXm\] Roter Hintergrund \[\033[42;XXm\] Grüner Hintergrund \[\033[43;XXm\] Hellbrauner Hintergrund \[\033[44;XXm\] Blauer Hintergrund \[\033[45;XXm\] Lila Hintergrund \[\033[46;XXm\] Türkis Hintergrund \[\033[47;XXm\] Hellgrau Hintergrund Security: Aus Sicherheitsgründen sollte man soviel Programme wie möglich mit einen User starten, der nur wenig Rechte auf dem System hat (z.B. daemon) . Netzwerkeinstellungen: Die zentralen Netzwerkeinstellungsscripte liegen unter “cd /etc/sysconfig/network”. Info am Rande: Bei Windows zuerst “OpenSSH for Windows” installieren dann “cygwin” und dann “minGW”. pscp -v c:\Temp\socket\*.* root@wenning.corp:/home/inf = Putty scp Kommando (Win -> Lin = upload) pscp -v -r root@filehunter:/root/temp/* c:\Temp = Putty scp Kommando (Lin -> Win = download) FTP download: ftp open mkbfotomeister.mk.ohost.de lcd /root/public/mkbfotomeister.mk.ohost.de bin get * Offene Dateien beenden “ohne Hauptprozess zu beenden” (kill Filedescriptor via Proc FS) “lsof | grep -i dbm.prt” tail 16974 root 3r REG 8,1 800666 31006839 /sapdb/SM4/data/wrk/SM4/dbm.prt “cd /proc/16974/fd” “ls -al” “gdb –pid 16974” p close(1) p close(2) p close(3) = Ist der offene File Descriptor p close(4) p close(5) detach quit Manchmal wird doch der Hauptprozess beendet bzw. stürtzt ab. Scenario: Apache schreib zu viel in Logfiles und die Logfiles werden zu groß. Ein rm auf das Logfile löst zuerst das Speicherproblem, allerdings schreibt der Apache dann keinen neuen Logfile. Unter lsof steht der Logfile als “(deleted)” . Das Filesystem kann den Speicher für die gelöschte Datei nicht freigeben. Mittels der obrigen Lösung wird zumindest der Speicherplatz wieder freigegen. Der Apache stürtzt nicht ab kann aber weiterhin keine neue Logfile erstellen oder schreiben. Umgebungsvariable eines laufenden Prozesse ändern “strings /proc/45985/environ | grep -i home” -> JRE_HOME=/usr/lib64/jvm/java/jre “gdb” (gdb) attach 45985 (gdb) call putenv (“JRE_HOME=/tmp”) $1 = 0 (gdb) detach “strings /proc/45985/environ | grep -i home” -> JRE_HOME=/tmp #Zusatz Info########################################### SuSE ist eine BSD Variante bzw. LSB Konform und Debian ein System-V und nicht LSB Konform. Wenn bei geöffneten “xterm&” Fenster ausfersehen “strg+s” (save) gedrückt wird, hängt sich xterm auf. Mit “strg+q” kommt man wieder zurück in den normalen Modus: ############################################################################################### Kernel Parameter ändern tunen Kernel Panic manuell auslösen (Kdump) “lynx https://www.suse.com/communities/conversations/installing-and-configuring-kdump-sles-10-kernel-crash-analysis/” “vi /etc/sysconfig/kdump” “echo 1 > /proc/sys/kernel/sysrq” “echo c > /proc/sysrq-trigger” reboot (hard way) “echo 1 > /proc/sys/kernel/sysrq” “echo b > /proc/sysrq-trigger” sleep 15; echo 1 > /proc/sys/kernel/sysrq; echo b > /proc/sysrq-trigger; #reboot #sleep 15; echo 1 > /proc/sys/kernel/sysrq; echo 0 > /proc/sysrq-trigger; #Aus #dd Backup über SSH############################################################################################## Erstellen “dd if=/dev/sda of=/dev/sdf conv=noerror,sync” = Lokales Backup bzw. kopieren “dd if=/dev/hda1 -bs 1k conv=noerror,sync | gzip -c | ssh radagast ‘cat > backup.img.gz’ “dd if=/dev/sda conv=noerror,sync | ssh -vvv root@172.16.190.1 “dd of=/dev/sda” “dd if=/dev/sda conv=noerror,sync | gzip -c | ssh root@172.16.190.12 ‘dd of=/root/DATABASE/g4l_images/web_server_sda.img.gz'” “time ssh root@172.17.190.6 “dd if=/dev/sda” | dd of=/root/smb_shares/xen08/root/xen_storage_4/saplnx_v/saplnx.img conv=noerror,sync” = Backup (RAW) vom Zielserver aus erstellen. Wiederherstellen lokaler server “time dd of=/dev/sda conv=noerror,sync | gzip -d | ssh root@172.16.190.12 ‘dd if=/root/DATABASE/g4l_images/web_server_sda.img.gz conv=noerror,sync ‘” “time ssh root@172.16.190.12 “cat /root/DATABASE/g4l_images/web_server_sda.img.gz” | gunzip -c | dd of=/dev/xvda conv=noerror,sync” ????? “dd if=/root/platte/boot_backup.img of=/dev/xvda1 conv=noerror,sync” = Restore lokal Parameter noerror = instructs dd to continue operation, ignoring all read errors. Default behavior for dd is to halt at any error. sync = fills input blocks with zeroes if there were any read errors, so data offsets stay in sync. “bs=512” = sets the block size to 512 bytes, the “classic” block size for hard drives. If and only if your hard drives have a 4K block size, you may use “4096” instead of “512”. Also, please read the warning below, because there is more to this than just “block sizes” – it also influences how read errors propagate. ############################################################################################### #Linux Funktionsweise von Daten schreiben############################################################################################## Schreiben Wenn Daten geschrieben werden, kommen diese zuerst in den Page Cache und werden dort als Dirty Pages verwaltet. Dirty deshalb, weil diese Daten zwar im Page Cache liegen, aber erst auf das darunterliegende Speichergerät geschrieben werden müssen. Der Inhalt dieser Dirty Pages wird regelmäßig (bzw. auch beim Aufruf von Systemcalls wie sync oder fsync) auf das darunterliegende Speichergerät weitergegeben. Dies kann in letzter Instanz etwa ein RAID-Controller oder direkt eine Festplatte sein. Das folgende Beispiel zeigt die Erstellung einer 10 MByte großen Datei, die zuerst in den Page Cache geschrieben wird. Der Umfang der Dirty Pages steigt dadurch, bis diese in diesem Fall manuell per sync Kommando auf die darunterliegende SSD geschrieben werden: dd if=/dev/zero of=testfile.txt bs=1M count=10 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0,0121043 s, 866 MB/s cat /proc/meminfo | grep -i dirty Dirty: 10260 kB sync cat /proc/meminfo | grep -i dirty Dirty: 0 kB Quelle: http://www.thomas-krenn.com/de/wiki/Linux_Page_Cache_Grundlagen ############################################################################################### SLES SAN Multipath starten. “lynx https://support.novell.com/techcenter/sdb/en/2005/04/sles_multipathing.html” “/etc/init.d/boot.multipath start” “/etc/init.d/multipathd start” “multipath -l” = MPIO status “multipath -v2 -d” “multipath -v3 -d” “fdisk -l” -> output Disk /dev/mapper/360030d90a88087016c8f5c0427fd3471: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders, total 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes Disk identifier: 0x00000000 ############################################################################################### TCPdump Filter #Kleine Auswahl an Filteroptionen tcpdump -i eth0 port not 22 and not host 172.16.190.1 tcpdump -vvv -nn -X -i eth4 port not 22 #Mehr sie TCPdump Doku ############################################################################################### nslookup Mail Exchanger Record abfragen “nslookup” -> server 172.17.190.30 set q=mx moore.corp nslookup -query=AAAA sles174.bb.bbmsg #IPv6 nslookup -query=AAA sles174.bb.bbmsg #IPv4 ############################################################################################### Deprecated NET Tool Alternative Tool. Ab Opensuse Tumbleweed 42.1 (openSUSE 20151030 (x86_64)) OLD NEW arp ip n ifconfig ip a ipmaddr ip maddr iptunnel ip tunnel netstat ss ip route (netstat -r) ip -s link (netstat -i) route ip r mii-tool ethtool nameif ifrename ############################################################################################### “lynx https://www.suse.com/documentation/sles-12/” ############################################################################################### Named Pipe via netcat Server: “mkfifo /tmp/testpipe” Server: “screen” -> “netcat -l 4444 0< /tmp/testpipe” Server: “screen” -> “cat /dev/random > /tmp/testpipe” hier kann auch z.B. “ls -al > /tmp/testpipe” oder was anderes stehen. Client: “netcat 172.17.190.43 4444” oder “netcat 172.17.190.43 4444 > /dev/null” ############################################################################################### Gibt die Pipe | aus. Falls mal man wieder in der VI Console keine hat. “echo $’\x7c'” ############################################################################################### #Prozesse Parallelisieren (zumindest mehrer Prozesse mit unterschiedlichen Argumenten gleichzeitig starten) “time echo {1..5} | xargs -n 1 -P 5 sleep” = 5 sleeps zur gleichen Zeit starten (-P) und per echo Kommandozusatz pipen “time find *.iso -type f | xargs -l -P24 md5sum” = Keine Zeitlich Signifikanten unterschide zu parallel “time find *.iso -type | parallel -j 24 md5sum” = Keine Zeitlich Signifikanten unterschide zu xargs “time find . -type f -print0 | xargs -0 -P 4 -n 40 grep -i “S2360/3267” = grep`pen mit 4 Prozessen und 40 Threads pro prozess. Wenn man die Anzahl der Kerne kennt und die Anzahl der zu durchsuchenden Dateien kann man “-P <Anzahl an Kerne” “-n <Anzahl der kerne DURCH Anzahl der Files>” einstellen. #Geschwindigkeitsvergleich “time ( seq 1000 | xargs -n 1 echo | wc -l )” 1000 real 1m8.835s user 0m0.075s sys 0m0.299s “time ( seq 1000 | parallel echo | wc -l )” 1000 real 0m19.959s user 0m3.848s sys 0m5.177s #Unterschied zwischen parallel und xargs “time find *.iso -type f | parallel md5sum” = erstellt zwei separate Prozesse 19687 root 20 0 4512 1328 1240 D 6.645 0.034 0:03.14 md5sum openSUSE-13.2-DVD-x86_64.iso 19688 root 20 0 4512 1384 1296 D 6.645 0.035 0:03.06 md5sum openSUSE-Leap-42.1-DVD-x86_64.iso “time find *.iso -type f -print | xargs -P 0 md5sum” = Zwei Argumente werden übergeben. 21046 root 20 0 4512 1292 1204 D 15.23 0.033 0:03.94 md5sum openSUSE-13.2-DVD-x86_64.iso openSUSE-Leap-42.1-DVD-x86_64.iso real 2m47.517s user 0m23.346s sys 0m4.209s “time find *.iso -type f | xargs –max-procs=4 -n 1 md5sum” = erstellt zwei separate Prozesse 22614 root 20 0 4512 1292 1204 D 29.47 0.033 0:04.46 md5sum openSUSE-13.2-DVD-x86_64.iso 22615 root 20 0 4512 1296 1208 D 9.272 0.033 0:00.82 md5sum openSUSE-Leap-42.1-DVD-x86_64.iso real 2m49.777s user 0m23.498s sys 0m4.417s ############################################################################################### Excel S-Verweis auf Linux Ebene #Alle einträge die in der i-doit liste sind aus der icinga liste nehmen #List aufbereiten cat alle_icinga_hosts.csv | awk -F “‘” ‘{print $2}’ | awk -F “.” ‘{print $1}’ >> alle_icinga_hosts_1.txt cat i_doit_report_mit_flag.csv | awk -F ” ” ‘{print $1}’ | awk -F “.” ‘{print $1}’ >> idoit_report_1.txt # #Alle zeichen klein machen cat alle_icinga_hosts_1.txt | tr [A-Z] [a-z] > alle_icinga_hosts_klein.txt cat idoit_report_1.txt | tr [A-Z] [a-z] > idoit_report_klein.txt # #Duplikate anzeigen sort idoit_report_klein.txt alle_icinga_hosts_klein.txt | awk ‘seen[$0]++ == 1’ > duplikate_icinga_idoit.txt # #Duplikate aus icinga liste löschen cp -frv alle_icinga_hosts_klein.txt alle_icinga_hosts_klein_ohne_duplikate.csv cat duplikate_icinga_idoit.txt | xargs -I ‘{}’ sed -i ‘s/{}//g’ alle_icinga_hosts_klein_ohne_duplikate.csv cat alle_icinga_hosts_klein_ohne_duplikate.csv | grep -v -e ‘^[[:space:]]*$’ >> alle_icinga_hosts_ohne_monitor_flag.txt ############################################################################################### ################################################################################################ Core Dump lesen (systemd) cd /var/lib/systemd/coredump Bei pre systemd Systemen (SLES11) cd /var/crash xz –decompress core.read_file_infos.0.2d8b4f112d5c4584ac8517cd8355d63d.16479.1526468999000000.xz file core.read_file_infos.0.2d8b4f112d5c4584ac8517cd8355d63d.16479.1526468999000000 Man kann sehen bei was der Dump ausgelößt wurde. core.read_file_infos.0.2d8b4f112d5c4584ac8517cd8355d63d.16479.1526468999000000: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from ‘./read_file_infos /root/database/DATABASE_1/Database/Spiele/Flug Simulator 98/B’ gdb –core=core.read_file_infos.0.2d8b4f112d5c4584ac8517cd8355d63d.16479.1526468999000000 … Core was generated by `./read_file_infos /root/database/DATABASE_1/Database/Spiele/Flug Simulator 98/B’. …. objdump -s core.read_file_infos.0.2d8b4f112d5c4584ac8517cd8355d63d.16479.1526468999000000 | less #Geht nur wenn das Programm mit debug Infos compiliert wurde (g++ -g …) gdb start_index core.start_index.0.8c199006bcd3424a8dfa7e32a5eb49dc.4166.1532500704000000 … Core was generated by `./start_index /root/smb_mount/cloud/ 4′. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f93b8740feb in fgets () from /lib64/libc.so.6 …. ################################################################################################ Prozess vor ps, top und lsof verstecken. Das Programm normal starten. Die Process ID herausfinden und ein leere Verzeichnis über das /proc/<PID> Filesystem mounten mount -o bind /tmp/leer /proc/14236 nun findet ps, top und lsof die Pid bzw. das Programm nicht mehr. Dafür ist allerdings ein verdächtigs Laufwerk gemountet (mount | grep -i <PID>) ################################################################################################ Doppelte IP erkennen “arping -D -q -I eth0 -c 2 172.17.190.80 ; echo $?” = doppelte IP erkennen, im selben Netz. Wenn keine 0 dann doppelte IP “arp -v -n” = Hier doppelte Einträge prüfen ################################################################################################ #Kommanodverkettungen ” while true; do rm -frv /tmp/index.html; wget http://checkip.dyndns.com -P /tmp/; cat /tmp/index.html | mailx -vvv -s “IP Date: `date`” -S smtp-use-starttls -S ssl-verify=ignore -S smtp-auth=login -S smtp=smtp://smtp.gmail.com:587 -S from=wurzel.root@gmail.com -S smtp-auth-user=wurzel.root@gmail.com -S smtp-auth-password=<PASSWORT> -S ssl-verify=ignore alexander.moore1981@gmail.com; sleep 1800; done ” = #alle 30 Minuten webseite downloaden und per Email versenden (Googlemail STARTTLS) ” time find . -type f -print0 | xargs -0 -P 40 -n 1 zgrep -iE “*149.249.158.30*2121*” > 149.249.158.30_star_3_2121.txt ” #= 40 Kerne/CPU und 1 Argumente (Filename) pro Prozess nutzen um Pattern in Files zu finden. ” echo 185.46.212 | { IFS=”.” read A B C D; for J in {1..255}; do [ $((++D)) -eq 255 ] && { ((C++)); D=0; }; echo $A.$B.$C.$D; done } | xargs -I % ipset test antip2p % ” = IPs incremental ausgeben. ” for i in {1..5}; do shuf -i 1-50 -n6; done | xargs -n5 ” = Eurojackpot. 5 aus 50 . Zufallsgenerator “shuf -i 1-50 -n18 | uniq -c” cat zahlen_vorrat.txt | sort -n | awk -F ” ” ‘{print $2}’ | tail -n 15 | shuf -n 5 cat zusatzzahlen_vorrat.txt | sort -n | awk -F ” ” ‘{print $2}’ | tail -n 5 | shuf -n 2 “seq -f “sles%02g” 0 400 | xargs -I % nslookup % | grep -i “Name:” | awk -F ” ” ‘{print $2}’ | xargs -I % ping -c 1 -W 1 % | grep -i -B 3 “100%” | grep PING ” = DNS Server nach Leichen Pingen “watch -n 1 “df -h | sort -k5 -n | tac” ” = Plattenplatz kontinuierlich anzeigen wobei die Sortierung auf “Use%” liegt. “while read LINE; do ldapsearch -x | grep -i ${LINE}; done < host_list_sortiert_2.txt” = Den Inhalt einer Datei mit der Ausgabe eines Kommandos zur Übereinstimmung bringen . “time cat 09.05.2019-10_* | awk -F ” ” ‘{print $10}’ | sort | uniq -c | sort -n -r > 9_5_2019_sort.txt” = In einem Text die Anzahl der vorkommenden Muster zählen und sortiert ausgeben. “time seq 10000000 | xargs -P 70 factor | awk ‘{gsub(“:”,””)}; NF==2{print $1}{}’ | tail -n 1″ = Primzahlen Berechnung, bzw. nur Primzahlen anzeigen, mit 70 Prozessen (CPUs) 9772067 real 0m14.531s user 0m15.436s sys 10m48.544s #Intel(R) Xeon(R) CPU E7-8880 v3 @ 2.30GHz #Dell PowerEdge R930 “curl https://www.lotto-bw.de/lotto/statistiken/ziehungen | grep -i “li class=\”shell\” data-index=\”” | awk -F “data-index” ‘{print $2}’ | awk ‘{print substr($0,3); }’ | sed “s/\”/ /g” | sort -n -k3 | tac >> /tmp/zahlenvorrat.txt” = Lotto BW 6aus49 Statistiken sortiert herunterladen “curl -s https://www.lotto-bw.de/lotto/statistiken/ziehungen | grep -i “li class=\”shell\” data-index=\”” | awk -F “data-index” ‘{print $2}’ | awk ‘{print substr($0,3); }’ | sed “s/\”/ /g” | sort -n -k3 | tac | awk -F ” ” ‘{print $1}’ | head -n 10 | shuf -n 5″ = Einzeiler, dasselbe wie oben. Aus den 10 häufigsten Zahlen 5 durch zufall heraussuchen. “cat /tmp/zahlenvorrat.txt | awk -F ” ” ‘{print $1}’ | head -n 10 | shuf -n 5″ “curl -s https://www.lotto-bw.de/eurojackpot/statistiken/ziehungen | grep -i “li class=\”shell\” data-index=\”” | awk -F “data-index” ‘{print $2}’ | awk ‘{print substr($0,3); }’ | sed “s/\”/ /g” | sort -n -k3 | tac | awk -F ” ” ‘{print $1}’ | head -n 20 | shuf -n 5″ = Euro Jackpot “grep -v “rem_address” /proc/net/tcp | awk ‘{x=strtonum(“0x”substr($3,index($3,”:”)-2,2)); for (i=5; i>0; i-=2) x = x”.”strtonum(“0x”substr($3,i,2))}{print x”:”strtonum(“0x”substr($3,index($3,”:”)+1,4))}'” = netstat ohne netstat auf basis /proc/net/tcp . Gut wenn man keine root Rechte hat ################################################################################################ #Sonstiges und nützliche URLs curl http://api.db-ip.com/v2/free/223.247.134.99 curl wttr.in/mannheim ################################################################################################ Boot Partition erweitern bzw. boot nach hinten verschieben auf neue, größere Partition (SDA). Kommandos fdisk -l /dev/sda umount /boot/ parted /dev/sda print free dd if=/dev/sda1 of=/tmp/boot.img parted /dev/sda print free parted /dev/sda rm 1 parted /dev/sda print free parted /dev/sda mkpart primary $(parted /dev/sda unit s p free | grep -i “Free Space” | tail -n 1 | awk -F ” ” ‘{print $1}’) $(parted /dev/sda unit s p free | grep -i “Free Space” | tail -n 1 | awk -F ” ” ‘{print $2}’) parted /dev/sda print free dd if=/tmp/boot.img of=/dev/sda1 parted /dev/sda print free parted /dev/sda set 1 boot on parted /dev/sda print free e2fsck -f /dev/sda1 resize2fs /dev/sda1 500M mount /dev/sda1 /boot; df -h /boot/ reboot ################################################################################################ Problem: -bash: ./CreateSAPuser.sh: /bin/bash^M: bad interpreter: No such file or directory Lösung: sed -i -e ‘s/\r$//’ CreateSAPuser.sh ################################################################################################ #litle endian CPU oder big endian “echo -n I | od -to2 | awk ‘FNR==1{ print substr($2,6,1)}'” Bei Return Code 1 = little endian, bei 0 big endian “lscpu” Byte Order: Little Endian Intel ist little endian ################################################################################################

Post Revisions: