Last Updated or created 2024-02-13
Sorting my fileserver i found a lot of Bash/Linux scripts maybe useful.
Some are tool usage only, maybe I’ll remove this page.
But this being my own log/notebook, who knows
Port knocker .. opens port 22 when you send a tcp packet to port 1600 first. Note: when portscanning it wil close again when accessing 1601 or 1599. Note2: NOT active on my server .. duh!
(Open with a browser or telnet/netcat)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m recent --rcheck --name SSH -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1599 -m recent --name SSH --remove -j DROP iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1600 -m recent --name SSH --set -j DROP iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1601 -m recent --name SSH --remove -j DROP iptables -A INPUT -m tcp -p tcp --dport 22 -j DROP
Dump and share your log, you get a short link to share
cat /var/log/Xorg.0.log | nc termbin.com 9999
Multiboot? This will reboot into another OS
#!/bin/bash WINDOWS_TITLE=`grep -i "^menuentry 'Windows" /boot/grub/grub. grub-reboot "$WINDOWS_TITLE" reboot
Unreadable json?
cat file | python3 -m json.tool
screen stuff
Start in screen Start screen in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts. /usr/bin/screen -d -m -S backup /usr/local/bin/backup.sh screen -r backup Screensize ctrl-a :fix # Screensize fix
Memory leak check
pmap <pid> | tail -1 Memory leak .. pmap opslaan en vergelijken met een pmap later.
Listen to remote microphone local playback
ssh -C monitor@remoteserver arecord -f dat | aplay -f dat
Root login to named account
ssh-copy-id root@remote-server (one time only) then: ssh root@remoteserver Lookup named account cat /var/log/secure | grep publickey | cut -f6 -d: | while read ; do ssh-keygen -lf ~/.ssh/authorized_keys | grep $REPLY ;done 2048 SHA256:l85g/NvPnEy85UVfJ5LJw3NvPnEy85UVfJ5LJw3NvPnEy85UVfJ5LJw3 haanstoot@minka (RSA)
Get all VMs from RHEV/Ovirt
curl -X GET -H "Accept: application/xml" -u username@domain:PaSSwoRd --cacert rhevm.cer https://rhvserver:443/api/vms | grep -i "<name>" | grep -v " " | cut -f2 -d\> | cut -f1 -d\<
Get all disks from RHV
log into ovirt engine and postgres psql -d engine -U postgres -c 'select vm_names,disk_profile_name,storage_id,disk_id,image_guid,disk_alias from public.all_disks;'
Gluster heal info
gluster volume info | egrep "Volume Name|Type" | grep -B1 Replicate | grep "Volume Name" | cut -c14- | while read ;do gluster volume heal $REPLY info > /tmp/$REPLY.out ; done ls /tmp/*out | while read ;do cat $REPLY | grep entries | grep -v "Number of entries: 0" >/dev/null && echo $REPLY ;done | while read heal ; do cat $heal ;done | tac |sed -e '/Number of entries: 0/I,+1 d' | tac | uniq
Some work tips i’ve posted
VI Vim comments toevoegen ga op de eerste regel van de te commenten regel staan ctrl-v (visual) naar beneden tot eind regel (met cursor of pagedown) ctrl-i # esc (kan even duren) verwijderen ga op de eerste regel van de te uncommenten regel staan ctrl-v (visual) naar beneden tot eind regel (met cursor of pagedown) x esc Als user config geedit en geen schrijfrechten? :!bash chmod 666 bestand :wq chmod bestand naar wat hij was Input / verwerk door bash vanuit vi :0,5 !sort # eerste 5 regels door sort heen halen :r !date # datum in je tekst document Vim tabs / multiple files vi /etc/hosts /etc/services :n :prev VIM7 tabs vim -p /etc/hosts /etc/profile :tabe /etc/services :tabn :tabp Key mappen :map <F7> :tabp <CR> :map <F8> :tabn <CR> zet deze in je $HOME/.vimrc ... zonder de eerste ":" Vi redirect :r date # datum in text :1,5!sort -n # sorteren van eerste 5 regels met een extern commando (kan ook met shift v een visual gedeelte selecteren) :0,$!cut -f1 -d: # alleen field 1 van text overhouden (delimiter :) Vi inspringen bij loop code selecteer met shift-v de regels die moeten inspringen. daarna > of < gebruiken om te tabben Speciale charakters met vi bekijken :set list een tab zier er dan uit als ^I Bash sudo vergeten in commando service apache restart sudo !! Bash truck vorige commando doet vorig commando met aangepast keyword systemctl status ovirt-ha-broker.service ^status^start {} expand directory's archief30_tmp t/m archief35_tmp recursive directories chmod 2775 zetten find achief{30..35}_tmp -type d -exec chmod 2775 {} \; of mkdir tmp{1..3} echo pr{ut,utser}s 1 regel uit een script starten zonder copy-paste (bijvoorbeeld in een remote-console sessie) grep ipa command uit cobber.ks en voor deze uit ( /usr/sbin/ipa-client-install --domain=mgtdomain --enable-dns-updates -w password --realm=domain --server=server.domain --hostname=hypervisor.domain --unattended --force-ntpd ) cat cobbler.ks | grep ipa | bash Bash karakters omdraaien Linkerhand rechterhand coordinatie probleem smile upadte ga op de d staan en druk ctrl-t Bash laatste woord vorige regel ls -latrd /var/data/extra/backup chmod 775 <ESC(punt)> Ssh forward bij een running sessie [haanstoot@xxx202 ~]$ ~C (tilde C) -L8080:localhost:80 (redirect localhost port 80 naar eigen machine poort 8080 -D9999 (Dynamic socks forward, zie andere post in deze wiki) CTRL-C werkt niet? ctrl\ SSH .ssh/config KeepAlive yes <---------- dont die on me ServerAliveInterval 60 <---------- dont die on me Host *.domain <-- voor alle hosts in radlan fast login en geen vraag over key StrictHostKeyChecking no UserKnownHostsFile=/dev/null host *.domain <-- domain is altijd mijn user user haanstoot GSSAPIAuthentication no <-- speedup host pruts*.domain user pi Parallel tasks 4 parallel jobs find jpg -type f -name \*.jpg -print0 | xargs -0 -n1 -P4 ./convert.sh clusterssh truck clusterssh alle svgs <--- naar alle svgs sudo su - cd /bricks/*/store <--- cd naar deze als bestaat cd /rhgs/brick0*/store <-- cd naar deze als bestaat (nu sta je in atelier directories als deze bestaat als root in de svgs) pwd | grep store || logout <--- geen atelier dir waar je staat? dan logout id | grep haanstoot && logout <-- net logout? dus eigen user ... dan logout eindresultaat ... als root in atelier volumes op svgs waar ze bestaan Start in screen /usr/bin/screen -d -m -S backup /usr/local/bin/backup.sh screen -r backup Start screen in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts. Sudo vergeten systemctl restart httpd (wil niet als user) sudo !! (doet "sudo systemctl restart httpd") Reuse arguments Bijvoorbeeld: # touch file1 file2 file3 file4 # chmod 777 !* Voert uit: chmod 777 file1 file2 file3 file4 5 meeste disk gebruikers human readable du -hsx * | sort -rh | head -5 rm groot bestand duurt lang : > /mappen2/archieven/test.img Check memory bankjes sudo dmidecode| grep -i -B1 "Form Factor" (B1 betekend BEFORE 1 regel meenemen, A is AFTER) Size: 8192 MB Form Factor: DIMM -- Size: 8192 MB Form Factor: DIMM -- Size: No Module Installed Form Factor: DIMM -- Set time and restart NTP service sudo service ntpd stop && sudo ntpdate ntp1.domain && sudo ntpdate ntp2.domain && sudo service ntpd start Aliases en terminal kleuren In een terminal f*ckedup colors? komt door de alias alias ls='ls --color' deze even uitzetten / niet gebruiken? \ls Werkt voor alle aliassen Snelle delete Niet onderstaande gebruiken voor grote dirs rm -rf /path/bla Maar mkdir /tmp/leeg ; rsync -a --delete /tmp/leeg /path/bla Bash best practices BashBestPractices Script log replay script --timing=/tmp/time.txt /tmp/script.log scriptreplay -t /tmp/time.txt /tmp/script.log
There are toooo many cool sniplets .. only adding when i’m bored.