Linux Scripting

Aus Zovis Wikili
Wechseln zu: Navigation, Suche



SSH Verbindung in einem Script mit einem low User (Ohne Homeverzeichnis z.B. web9) aufbauen und dort Code ausführen

#!/bin/bash
# by NEKU1
# Version 2021.06
 
# set var fröm attribut
email="$1"
 
ssh -i /ORDNER/id_rsa  username@172.5.5.5 /bin/bash <<EOT
 
if grep -i "$email" /etc/mail/spamassassin/custom_rules/allowlist.cf; then
    echo "gits scho"
 
else
    echo "whitelist_from  $1">>/etc/mail/spamassassin/custom_rules/allowlist.cf
    sudo systemctl restart spamassassin
    echo "isch itreit wordä"
 
fi
EOT
 
exit

Eine SSH Verbindung mit einem Webuser zu prüfen

sudo -H -u web9 bash -c 'ssh -i /dein ordner/id_rsa username@172.5.5.5'


Ein neuen Host-Key einzutragen (wenn der Host gewechselt hat)

z.B.

sudo -H -u web9 bash -c 'ssh-keygen -f "/var/www/clients/client0/web9/.ssh/known_hosts" -R "172.5.5.5"'


Check root

#check if script is run by root
if [[ $EUID -ne 0 ]]; then
 echoerr "ERROR: This script must be run as root"
 exit 27
fi

Zeile aus Datei auslesen

while read -r line; do echo "$line"; done < file.txt

Ordner auslesen

  • maxdepht * gibt an wieviele Unterebenen ausgelesen werden soll
find -maxdepth 2 -type d -printf "%f\n" >liste.txt

ssh in Script

ssh hbmu01 <<'ENDSSH'
   echo hello world
ENDSSH


oder

ssh -n ddscript@hddzf2 "BEFEHL"

rsync

rsync -v -d --progress /usr/local/scripts/backup/reports_sql/temp/*.txt hseh01:/mnt/nfs_cifs_sql/aaa-report/


du - Grösse von Ordner

du -h -d 0 /mnt/nfs_cifs_sql/* -b




Echo-Zeile ohne Zeilenumbruch

#!/bin/bash
echo 'Eine Zeile mit Umbruch';
echo -n 'Eine Zeile ohne Umbruch, ';
echo 'direkt gefolgt von einer weiteren Zeile.';


oder

#!/bin/sh 

echo 'Eine Zeile mit Umbruch'; 
echo 'Eine Zeile ohne Umbruch, \c'; 
echo 'direkt gefolgt von einer weiteren Zeile.';

Ausgabe:

Eine Zeile ohne Umbruch
Eine Zeile ohne Umbruch, direkt gefolgt von einer weiteren Zeile.


Dateien rekursiv Umbenennen

find . -name cover.jpg -execdir mv {} folder.jpg \;