Skip to content
tobkern edited this page Sep 14, 2016 · 9 revisions

Contend Linux tools

Bash tools

Environment for bash script

  • Variables for your Header
    • $DATE
    • $VERSION

cat for your bash script to configure Mysql.

cat << EOF|mysql -u root -p

CREATE DATABASE icinga;

GRANT USAGE ON . TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

GRANT SELECT , INSERT , UPDATE , DELETE ON icinga.* TO 'icinga'@'localhost';

FLUSH PRIVILEGES ; EOF

Codeschnipsel

Neue große Daten finden hier z.b 10M

find . -mount -mtime -2 -size +10M -exec du -m {} ; | sort -n

Wie lange läuft der Prozess?

ps -o etime | grep -v ELAPSED | sed 's/\s*//g' | sed "s/(.)-(.):(.):(.)/\1d \2h/; s/(.):(.):(.)/\1h \2m/; s/(.):(.*)/\1m \2s/"

Clear Log

file="SystemOut.log_2016-02-26_13:19:24";tmp=mktemp; tail -100000 $file > $tmp; cat $tmp > $file; rm -rfv $tmp

VIM: via Sudo schreiben

:w !sudo tee %

Xen VM <-> LUN

for i in $(virsh dumpxml VMNAME | grep -A1 -B3 -e "xvd[cefi]" | awk -F' '/mapper/{print $2}'); do inquiry -dev $i 2>/dev/null | grep FALCON ; done

ICMP Ping echo Requests

tcpdump -vnni bond0 -e icmp[icmptype] == 8

Absoluter Pfad

ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"

State D

ps -eHo pid,comm,euser,stat,wchan:32|grep D sysctl -w kernel.sysrq=1 echo w > /proc/sysrq-trigger dmesg | less

Swap einzelner prozesse

for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less

LV Tree

Mit größen der LV's

_lvs="$(lvs --noheadings --unit=G)"; for lv in /dev/mapper/vgeqtlog-lveqtlog; do echo -e "\n$lv ($(echo "$_lvs" | grep -m 1 "$(echo $lv | rev | cut -d '/' -f1 | cut -d '-' -f1 | rev)" | awk '{print $4}'))"; for pv in $(lvdisplay -m $lv | grep 'Physical volume' | awk '{print $3}' | sort -u); do echo " ├─ $pv ($(fdisk -l $pv 2>/dev/null | grep -oP '(?<=:\s)\d.\d*\s\w{1,3}(?=,\s)'))"; (for lv2 in $(pvdisplay -m $pv | grep 'Logical volume' | awk '{print $3}' | sort -u); do echo " │ ├─ $lv2"; done | sed '$s/\├/└/g') done; done

Full Scan

_lvs="$(lvs --noheadings --unit=G)"; for lv in $(echo "$_lvs" | awk '{print "/dev/mapper/"$2"-"$1}'); do echo -e "\n$lv ($(echo "$_lvs" | grep -m 1 "$(echo $lv | rev | cut -d '/' -f1 | cut -d '-' -f1 | rev)" | awk '{print $4}'))"; for pv in $(lvdisplay -m $lv | grep 'Physical volume' | awk '{print $3}' | sort -u); do echo " ├─ $pv ($(fdisk -l $pv 2&gt;/dev/null | grep -oP '(?&lt;=:\s)\d*.\d*\s\w{1,3}(?=,\s)'))"; (for lv2 in $(pvdisplay -m $pv | grep 'Logical volume' | awk '{print $3}' | sort -u); do echo " │ ├─ $lv2"; done | sed '$s/\├/└/g') done; done

Mit SN von LV (nur bei LUNS)

_lvs="$(lvs --noheadings --unit=G)"; for lv in /dev/mapper/vgtsmg11-lvdb0*; do echo -e "\n$lv ($(echo "$_lvs" | grep -m 1 "$(echo $lv | rev | cut -d '/' -f1 | cut -d '-' -f1 | rev)" | awk '{print $4}'))"; for pv in $(lvdisplay -m $lv | grep 'Physical volume' | awk '{print $3}' | sort -u); do echo " ├─ $pv (Size: $(fdisk -l $pv 2&gt;/dev/null | grep -oP '(?&lt;=:\s)\d*.\d*\s\w{1,3}(?=,\s)'), SN: $(sg_inq $pv | grep 'Unit serial number|Vendor identification' | awk 'BEGIN { FS = ":" } ; { gsub (" ", "", $2); print $2 }' | tr '\n' '-'))"; done; done

Virtual rescan und resize

for pv in sd{c,d,e,f}; do echo 1 > /sys/block/$pv/device/rescan; pvresize /dev/$pv; done; pvs

Extend inner schleife

for lv in /dev/mapper/vgbqtdb2dbf-lvbqtsapdata*; do pv=$(lvdisplay -m $lv | grep -m 1 'Physical volume' | awk '{print $3}'); echo -e "\e[1m$lv $pv\e[0m"; pvresize $pv && lvextend -L +100G $lv $pv && resize2fs $lv;done

Baum mit ls

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^/]*//--/g' -e 's/^/ /' -e 's/-/|/'

LUN Rescanerino

b="$(echo /sys/block/sd*)"; for hba in /sys/class/scsi_host/; do echo '- - -' > $hba/scan ; done; for i in /sys/block/sd; do echo 1 > $i/device/rescan; done; diff <(echo "$b" | tr ' ' '\n') <(echo /sys/block/sd* | tr ' ' '\n') multipathd reconfigure

Netcat Datenpipe

tar -czf - * | netcat server 4444 netcat -l 4444 | tar xzvf -

netcat -l 4444 > received_file netcat server 4444 < original_file

Unix Timestamp aus Log convertieren

| perl -pe 's/(\d+)/localtime($1)/e'

Vom Backup wiederherstellen

dsmc rest -ina=yes -pick '/u00/app/oracle/local/custom/config/snapshot_maintenance.post_refresh.I1GASXRA.sql' dsmc rest -subdir=no -latest "/var/spool/cron/*" "/tmp/restore_IM1018911/"

XEN Disk Hinzufügen

virsh # attach-disk pariv113 /dev/mapper/36000d7700000824f45bc1437a221faa4 xvds --persistent virsh # attach-disk pariv111 /dev/mapper/36000d770000031d545bc143781b278d1 xvdr --persistent

HP BBU Status

hpacucli => ctrl all show status

AIX Phyischen Adaper einzelner VLANS zeigen

for dev in $(lsdev -c adapter -s vlan -F name); do echo $dev; lsattr -El $dev -a base_adapter; echo '\n'; done

AIX "Error Log"

errpt -a | more

AIX wer hat den Port

ps -fp $(lsof -i :1510|grep LIST|awk '{print$2}')

oder

cgnaixtsm02:/# netstat -Aan |grep 1510 f100060007560398 tcp4 0 0 *.1510 . LISTEN cgnaixtsm02:/# rmsock f100060007560398 tcpcb The socket 0x7560008 is being held by proccess 1142976 (dsmserv).

Uptime Fake

function uptime { _s="$(/usr/bin/uptime | grep -oP 'up\s{1,2}\d{1,}(:\d{2})?(\sdays)?,')"; _d=$(echo $_s | sed 's/://g' | grep -oP '\d{1,}'); /usr/bin/uptime | sed "s/$_s/up $(echo $_d+1234 | bc) days,/g"; }

User Homes anlegen

for user in $(cat tmp.txt); do echo -e "Working on $user..."; usergroup=$(id -g -n $user); uhome=$(grep -m 1 "^$user:" /etc/passwd | cut -d ':' -f6); if [ ! -d $uhome ]; then mkdir -p $uhome && (chmod 750 $uhome; chown -R $user:$usergroup $uhome) || echo "Failed creating home dir $uhome for $user ($usergroup)."; else echo "Home for $user exists! Nothing to do."; fi; done

SSL Cert

openssl req -new -newkey rsa:4096 -nodes -keyout ssl.key/cgnusrt81-2015-12-04.key -out ssl.crt/cgnusrt81-2015-12-04.csr openssl x509 -inform DER -in cgnusrt81-2015-12-04.cer -outform PEM -out cgnusrt81-2015-12-04.cert

Datapath

Luns anzeigen

datapath query device

Luns löschen

cgnrhcln13:# datapath query device | grep -C1 '0002f7|002f8|028da|0028d9|0294e|00294f' cgnrhcln12:# datapath query device | grep -B1 -A7 '0002f7|002f8|028da|0028d9|0294e|00294f' | grep '/sd' | awk -F '/' '{print $2}' | awk '{print $1}' | tee -a tmp.txt cgnrhcln12:# for path in vpathr vpaths vpathy vpathae vpathaf; do rmvpath $path; done cgnrhcln12:# for bd in $(cat tmp.txt); do echo 1 > /sys/block/$bd/device/delete; done