meta data for this page
  •  

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
shell:find_shell_scripts [2019/05/16 10:29] adminshell:find_shell_scripts [2020/03/09 11:50] (aktuális) admin
Sor 2: Sor 2:
  
 Felderíti a hoszton lévő shell szkripteket, és megmutatja a sha hast-üket, a módosítási dátumukat, meg van-e hívva valakinek a crontab-jából, illetve van-e benne IP cím, email cím, vagy előre definiált parancsok valamelyike. Felderíti a hoszton lévő shell szkripteket, és megmutatja a sha hast-üket, a módosítási dátumukat, meg van-e hívva valakinek a crontab-jából, illetve van-e benne IP cím, email cím, vagy előre definiált parancsok valamelyike.
-Paraméterként meg lehet neki adni, hogy mely könyvtárra fusson, egyébként az egész fájlrendszerben keres.+Paraméterként meg lehet neki adni, hogy mely könyvtárra fusson, egyébként az egész fájlrendszerben keres. Illetve szkript lista fájl is megadható neki paraméterként, akkor az abban felsorolt szkripteket elemzi. Ilyen bemenetet gyárt kimenetként pl a crontab bejegyzésekből az alábbi szkript:
  
 <file sh collect_crontab_scripts.sh> <file sh collect_crontab_scripts.sh>
 #!/bin/sh #!/bin/sh
 +#grep -R ".*" /var/spool/cron/ | sed -e 's/^\/var\/spool\/cron\/crontabs\///' | grep -v ':#' | grep -v '^$' | egrep -v '(errclear|clcycle|dumpcheck|lpar2rrd|pmcfg|motd|mkpasswd|logrotate|dumpctrl|sa1|sa2|Internal-Function|======|at.allow)'
 find /var/spool/cron/ -type f | xargs -I{} cat {} | grep -v '^#' | grep -v '^$' | egrep -v '(errclear|clcycle|dumpcheck|lpar2rrd|pmcfg|motd|mkpasswd|logrotate|dumpctrl|sa1|sa2|Internal-Function|======|at.allow)' | sed -e 's/^[^/$]*//' -e 's/[ >].*$//' | sort | uniq | while read SOR; do find /var/spool/cron/ -type f | xargs -I{} cat {} | grep -v '^#' | grep -v '^$' | egrep -v '(errclear|clcycle|dumpcheck|lpar2rrd|pmcfg|motd|mkpasswd|logrotate|dumpctrl|sa1|sa2|Internal-Function|======|at.allow)' | sed -e 's/^[^/$]*//' -e 's/[ >].*$//' | sort | uniq | while read SOR; do
         if echo $SOR | egrep -s '^\$'; then         if echo $SOR | egrep -s '^\$'; then
Sor 22: Sor 23:
 COMMAND_LIST="ssh ftp sftp rsh rdist rsync scp dsh rdsh mail sqlplus mutt" COMMAND_LIST="ssh ftp sftp rsh rdist rsync scp dsh rdsh mail sqlplus mutt"
 TMPFILE="/tmp/find_shell_scripts.sh.tmp" TMPFILE="/tmp/find_shell_scripts.sh.tmp"
 +CSVFILE=$(hostname)_script_catalog.out
 +>$CSVFILE
 if [[ -d $1 ]]; then if [[ -d $1 ]]; then
         STARTDIR="$1"         STARTDIR="$1"
Sor 30: Sor 33:
 fi fi
  
-echo "FILE NAME;SHASUM;MTIME;CRONTAB;IPS;COMMANDS;EMAILS" | awk -F';' '{printf "%-60s %-41s %-21s %-15s %-20s %-20s %-30s\n",$1,$2,$3,$4,$5,$6,$7}'+echo "FILE NAME;MTIME;CRONTAB;IPS;COMMANDS;EMAILS" | awk -F';' '{printf "%-60s %-21s %-15s %-20s %-20s %-30s\n",$1,$2,$3,$4,$5,$6}' 
 +echo "FILE NAME;MTIME;CRONTAB;IPS;COMMANDS;EMAILS;SHASUM" | awk -F';' '{printf "%-60s;%-21s;%-15s;%-20s;%-20s;%-30s;%-41s\n",$1,$2,$3,$4,$5,$6,$7}' >> $CSVFILE
 if [[ -n $FILE_LISTA ]]; then if [[ -n $FILE_LISTA ]]; then
         cat $FILE_LISTA > $TMPFILE         cat $FILE_LISTA > $TMPFILE
Sor 38: Sor 42:
  
 cat $TMPFILE | grep -v '^$' | while read FILE; do cat $TMPFILE | grep -v '^$' | while read FILE; do
-    if [[ $(file $FILE | egrep -c '(: shell script|: commands text)') -eq 1 || -n $FILE_LISTA ]]; then +    if [[ -f $FILE ]]; then 
-        if [[ -f $FILE ]]; then+        if [[ $(file $FILE | egrep -c '(: shell script|: commands text)') -eq 1 || -n $FILE_LISTA ]]; then
                 MTIME=$(istat $FILE | awk -F' ' '/Last modified/{print $8"."$4"."$5"-"$6}')                 MTIME=$(istat $FILE | awk -F' ' '/Last modified/{print $8"."$4"."$5"-"$6}')
  
Sor 63: Sor 67:
                         fi                         fi
                 done | sort | uniq | tr '\n' ',' | sed -e 's/^/commands:/' -e 's/,*$//')                 done | sort | uniq | tr '\n' ',' | sed -e 's/^/commands:/' -e 's/,*$//')
-                echo "$FILE;$(shasum $FILE | awk '{print $1}');$MTIME;$CRONTABS;$IPS;$COMMANDS;$EMAILS" | awk -F';' '{printf "%-60s %-41s %-21s %-15s %-20s %-20s %-30s\n",$1,$2,$3,$4,$5,$6,$7}'+                echo "$FILE;$MTIME;$CRONTABS;$IPS;$COMMANDS;$EMAILS" | awk -F';' '{printf "%-60s %-21s %-15s %-20s %-20s %-30s\n",$1,$2,$3,$4,$5,$6}' 
 +                echo "$FILE;$MTIME;$CRONTABS;$IPS;$COMMANDS;$EMAILS;$(shasum $FILE | awk '{print $1}')" | awk -F';' '{printf "%-60s;%-21s;%-15s;%-20s;%-20s;%-30s;%-41s\n",$1,$2,$3,$4,$5,$6,$7}' | sed -e 's/crontab://' -e 's/emails://' -e 's/commands://' -e 's/ips://' -e 's/atjobs://' >> $CSVFILE
         fi         fi
 +    else
 +        echo "$FILE;Nem nyithato meg a fajl." | awk -F';' '{printf "%-60s %-41s\n",$1,$2}'
 +        echo "$FILE;Nem nyithato meg a fajl." | awk -F';' '{printf "%-60s;%-41s\n",$1,$2}' >> $CSVFILE
     fi     fi
 done done
 rm -f $TMPFILE rm -f $TMPFILE
 </file> </file>