linux:bash_script_snippets
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:bash_script_snippets [2019/02/21 15:21] – [Beispiel für das Löschen aller audit Dump Files im adump Dir einer Datenbank] gpipperr | linux:bash_script_snippets [2022/07/29 13:31] (aktuell) – [Wann wurde die VM in Betrieb genommen] gpipperr | ||
---|---|---|---|
Zeile 49: | Zeile 49: | ||
# auf die „:“ Syntax für Parameter mit und ohne weiteren Wert achten! | # auf die „:“ Syntax für Parameter mit und ohne weiteren Wert achten! | ||
- | typeset COMMAND_PARAM=": | + | usage() { echo " |
+ | |||
+ | typeset COMMAND_PARAM=": | ||
# falls nicht übergeben wurden mit exit beenden | # falls nicht übergeben wurden mit exit beenden | ||
+ | |||
if ( ! getopts " | if ( ! getopts " | ||
- | echo " | + | usage |
- | exit 1; | + | |
fi | fi | ||
- | + | ||
# Parameter auswerten | # Parameter auswerten | ||
while getopts " | while getopts " | ||
case $opt in | case $opt in | ||
- | | + | |
- | echo "-a was triggered, Parameter: $OPTARG " >&2 | + | echo "-i was triggered, Parameter: $OPTARG " >&2 |
+ | inventory=${OPTARG} | ||
;; | ;; | ||
h) | h) | ||
echo "-h was triggered, call help" >&2 | echo "-h was triggered, call help" >&2 | ||
- | ;; | + | |
+ | exit 1 | ||
+ | | ||
\?) | \?) | ||
echo " | echo " | ||
Zeile 77: | Zeile 82: | ||
esac | esac | ||
done | done | ||
+ | |||
+ | |||
+ | echo -------------------------------- | ||
+ | echo List all hosts from Inventory $inventory | ||
+ | echo -------------------------------- | ||
</ | </ | ||
Zeile 206: | Zeile 216: | ||
set heading | set heading | ||
set feedback off | set feedback off | ||
- | select name from v$disktab group by name; | + | select name from v\$disktab group by name; |
exit; | exit; | ||
EOScipt` | EOScipt` | ||
Zeile 389: | Zeile 399: | ||
srv02 | srv02 | ||
srv04 | srv04 | ||
+ | |||
+ | # Zusammenfassen und deduplizieren | ||
+ | # Putt all SID's in one list | ||
+ | ALL_FOUND_DATABASES=( " | ||
+ | |||
+ | # deduplidate | ||
+ | ALL_DATABASES=( `for i in ${MY_VALUES[@]}; | ||
+ | |||
</ | </ | ||
Zeile 1109: | Zeile 1127: | ||
done | done | ||
</ | </ | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== MD5 Hash eines Verzeichnisses ==== | ||
+ | |||
+ | |||
+ | Für jede Datei den MD5 Hash erzeugen und dann den Hash über die MD5 Hashes | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | |||
+ | find . -type f -exec md5sum {} + | LC_ALL=C sort | md5sum | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | siehe dazu im Detail => https:// | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Liste mit allen SID's des DB Hosts aus der oratab und dem Speicher ermitteln ==== | ||
+ | |||
+ | Liste aller SIDS laufender Datenbanken: | ||
+ | <code bash> | ||
+ | ps aux | grep smon_ | grep -v grep | awk '{ print $11 }' | awk -F " | ||
+ | </ | ||
+ | |||
+ | Code Beispiel um über die Oratab und über den Speicher die Liste aller aktiven Instanzen auf dem Host zu ermitteln: | ||
+ | <code bash> | ||
+ | |||
+ | # try to find all database on this host over oratab | ||
+ | ALL_CONFIG_DATABASES=`cat / | ||
+ | |||
+ | # try to find all running database on this host if missing in oratab use memory | ||
+ | ALL_RUNING_DATABASES=`ps aux | grep smon_ | grep -v grep | awk '{ print $11 }' | awk -F " | ||
+ | |||
+ | # Putt all SID's in one list | ||
+ | ALL_FOUND_DATABASES=( " | ||
+ | |||
+ | # deduplidate | ||
+ | ALL_DATABASES=( `for i in ${ALL_FOUND_DATABASES[@]}; | ||
+ | |||
+ | echo Start to read for this SIDs ${ALL_DATABASES[@]} at `date` the alert log | ||
+ | |||
+ | for SID in $ALL_DATABASES | ||
+ | do | ||
+ | # do | ||
+ | # ... your code with $SID ... | ||
+ | | ||
+ | done | ||
+ | |||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====Finde log4j jars in wars ==== | ||
+ | |||
+ | Finde alle vorkommen von log4j aus bekannten Anlass in allen Wars auf der aktuellen Maschine | ||
+ | <code bash> | ||
+ | files=`find /. -name " | ||
+ | for f in $files | ||
+ | do | ||
+ | echo " | ||
+ | unzip -l $f | grep -i log4j | awk -v host=" | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====Wann wurde die VM in Betrieb genommen ==== | ||
+ | |||
+ | Auf einer geclonten DB Umgebung ist es gar nicht so einfach zu ermitteln wann das OS installiert wurde. | ||
+ | |||
+ | Ein Ansatz ist mit "stat /" die " | ||
+ | |||
+ | In dieser Umgebung ist die Idee, die zugefügten Platten im LV dazu zu anlayiseren: | ||
+ | <code bash> | ||
+ | lvdisplay | grep $HOSTNAME | grep "LV Creation host" | sort -r | awk '{ print $6 " " $7 }' | tail -n 1 | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | ====Eine Konfigurationdatei Zeilenweise einlesen | ||
+ | |||
+ | Zielenweise in ein Array eine Datei einlesen die z.B. aus mehreren Schemanamen besteht | ||
+ | |||
+ | <code bash> | ||
+ | IFS=$' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ---- | ||
====Quellen==== | ====Quellen==== |
linux/bash_script_snippets.1550758903.txt.gz · Zuletzt geändert: 2019/02/21 15:21 von gpipperr