Играем с Bash.

И так сидел курил потреблял кофеин сутки без продыху и тут меня озарила одна идея написать какой ни будь системный граббер с функций, скажу честно я не кодер по сему по большей части программный код у меня пусть и рабочий но не шибко красивый, но мне как то по х@ру на красоту, главное для меня эфективность. И так от сути к делу.
exec &> script.log
user=`whoami` 2> /dev/null # Current user
host=`uname -n` 2> /dev/null # Network node hostname
home=`echo $HOME` 2> /dev/null # User home directory
usid=`id -u` 2> /dev/null # User ID
gpid=`id -g` 2> /dev/null # Group ID
grps=`groups` 2> /dev/null # List all groups
knam=`uname -s` 2> /dev/null # Kernel name
krel=`uname -r` 2> /dev/null # Kernel release
kver=`uname -v` 2> /dev/null # Kernel version
arch=`uname -m` 2> /dev/null # Architecture
osys=`uname -o` 2> /dev/null # Operating System
echo "--[ Basic Information ]--"
echo "==> ABOUT THE USER"
echo "* Username : $user"
echo "* Hostname : $host"
echo "* Home Path : $home"
echo "* EUID : $usid"
echo "* EGID : $gpid"
echo "* Groups : $grps"
echo "==> ABOUT THE SYSTEM"
echo "* Kernel Name : $knam"
echo "* Kernel Release : $krel"
echo "* kernel Version : $kver"
echo "* Architecture : $arch"
echo "* OS Name : $osys"
echo "----------------------------------------------"
echo
# Network Information
ipdata=`ip -o link show` # IP data.
# Interfaces
ifaces=`
printf "* %-16s %s\n" "(Interface)" "(Flags)" ;
echo "$ipdata" |
awk -F ' ' '{printf "* %-16s %s\n", \
substr($2,1,length($2)-1), $3}' |
sort
` 2> /dev/null
# MAC addresses
maddrs=`
printf "* %-16s %s\n" "(Interface)" "(MAC Address)" ;
echo "$ipdata" |
awk -F ' ' '{printf "* %-16s %s\n", \
substr($2,1,length($2)-1), $(NF-2)}' |
sort
` 2> /dev/null
# IP addresses
iaddrs=`
printf "* %-16s %s\n" "(Interface)" "(IP Address)" ;
ip address |
grep "inet " |
awk -F ' ' '{printf "* %-16s %s\n", $NF, $2}' ;
printf "* %-16s %s\n" "(Public)" "(IP Address)" ;
printf "* %-16s " "Public" ;
dig +short myip.opendns.com @ resolver1.opendns.com ;
` 2> /dev/null
# Open ports
oports=`
printf "* %-8s %-24s %s\n" "(Type)" "(Address)" "(PID/Program)" ;
netstat -tulpn 2> /dev/null |
grep "LISTEN" |
awk -F ' ' '{printf "* %-8s %-24s %s\n", $1, $4, $NF}'
` 2> /dev/null
echo "--[ Network Information ]--"
echo "==> Interfaces"
echo "$ifaces"
echo "==> MAC Addresses"
echo "$maddrs"
echo "==> IP Addresses"
echo "$iaddrs"
echo "==> Open Ports"
echo "$oports"
echo "----------------------------------------------"
echo
printf "\n\nUser IDs\n" | tee -a $outfile
user=$(whoami) && printf "\nCurrent user: $user\n" | tee -a $outfile
printf "\n\n Other Users\n" | tee -a $outfile
cat /etc/passwd | tee -a $outfile 1>&2
И так мы производим сбор информации о системе а это интерфейсы, ip адреса и прочие радости. Далее за счет exec &> script.log мы производим создание и запись всех логов в отчет для дальнейшей с ним работы.
Затем мы создаем по пути новую папку
if [ ! -d /home/black/Desktop/тест/test/db ]; then
mkdir -p /home/black/Desktop/тест/test/db;
fi;
И проверяем ее на наличие файла find /home/black/Desktop/тест/test/db/ -name script по имени
но так как у меня в свежесозданной дирректории пусто, то мы создаем копию оригинальных логов и заносим в данную дирректорию
cat /home/black/Desktop/тест/script.log > /home/black/Desktop/тест/test/db/scriptdb.log
затем создаем еще одну папку там же путем mkdir -p /home/black/Desktop/тест/test/db/res
и шифруем примитивным шифрованием с вводом пароля копию оригинальных логов отправляя шифрованный файл в /res
openssl aes-128-cbc -salt -in /home/black/Desktop/тест/test/db/scriptdb.log -out /home/black/Desktop/тест/test/db/res/scriptdb.aes
Затем удаляем оригинальный лог и его копию
rm /home/black/Desktop/тест/test/db/scriptdb.log
rm /home/black/Desktop/тест/script.log

Комментарии