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 [2021/05/27 15:42] – [ID's in Export Dateien suchen - Ziel: Fehlende ID's finden] 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 1127: | Zeile 1145: | ||
siehe dazu im Detail => https:// | 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=$' | ||
+ | </ | ||
linux/bash_script_snippets.txt · Zuletzt geändert: 2022/07/29 13:31 von gpipperr