Skip to content

Instantly share code, notes, and snippets.

@azmankudus
Last active June 13, 2021 04:24
Show Gist options
  • Save azmankudus/533e5f85dd5d68a9cd00f8f1702cb412 to your computer and use it in GitHub Desktop.
Save azmankudus/533e5f85dd5d68a9cd00f8f1702cb412 to your computer and use it in GitHub Desktop.
Print info after login (/etc/profile.d)
#!/bin/sh
echo
echo "************************************************************************"
echo " _ _ ____ ____ _ _"
echo " / \ _ _ / \ _ __ ___ / ___| ___ | _ \ ___| \ | | __ _"
echo " / _ \| | | | / _ \ | '_ \` _ \| | _ / _ \| |_) / _ \ \| |/ _\` |"
echo " / ___ \ |_| |/ ___ \| | | | | | |_| | (_) | _ < __/ |\ | (_| |"
echo " /_/ \_\__, /_/ \_\_| |_| |_|\____|\___/|_| \_\___|_| \_|\__, |"
echo " |___/ |___/"
echo " AyamGoreng.Tech Legal Notice"
echo
echo " This system is for the use of authorized users only. Usage of"
echo " this system may be monitored and recorded by system personnel."
echo
echo " Anyone using this system expressly consents to such monitoring"
echo " and is advised that if such monitoring reveals possible"
echo " evidence of criminal activity, system personnel may provide the"
echo " evidence from such monitoring to law enforcement officials."
echo
echo "************************************************************************"
echo
#!/bin/bash
f_byte_unit()
{
if [ $1 -lt 1024 ]; then echo "$1 B"
elif [ $1 -lt 1048576 ]; then awk "BEGIN {printf \"%.4f kB\",$1/1024}"
elif [ $1 -lt 1073741824 ]; then awk "BEGIN {printf \"%.4f MB\",$1/1048576}"
elif [ $1 -lt 1099511627776 ]; then awk "BEGIN {printf \"%.4f GB\",$1/1073741824}"
else awk "BEGIN {printf \"%.4f TB\",$1/1099511627776}"
fi
}
f_show_disk()
{
v_disk_total=0
v_disk_used=0
v_disk_avail=0
while IFS= read -r v_line
do
v_disk_total=$(echo "${v_disk_total} + $(echo ${v_line} | awk '{print $2}') * 1024" | bc)
v_disk_used=$(echo "${v_disk_used} + $(echo ${v_line} | awk '{print $3}') * 1024" | bc)
v_disk_avail=$(echo "${v_disk_avail} + $(echo ${v_line} | awk '{print $4}') * 1024" | bc)
done <<< $(df -k | grep "$1")
v_disk_used_pct=$(awk "BEGIN {printf \"%.2f\",${v_disk_used}/${v_disk_total}*100}")
v_disk_avail_pct=$(awk "BEGIN {printf \"%.2f\",${v_disk_avail}/${v_disk_total}*100}")
echo "Disk $1: Total $(f_byte_unit ${v_disk_total}), Used $(f_byte_unit ${v_disk_used}) (${v_disk_used_pct}%), Free $(f_byte_unit ${v_disk_avail}) (${v_disk_avail_pct}%)"
}
f_print_nic()
{
v_text="Net $1"
if [ -n "$2" ]
then
v_text="${v_text} ($2)"
fi
echo "${v_text} $3 $4 $5"
}
v_hostname="$(hostname)"
v_os_version="$(cat /etc/os-release | grep PRETTY_NAME | awk -F'"' '{print $2}')"
echo "Hostname: ${v_hostname}, OS: ${v_os_version}"
v_os_platform="$(uname -i)"
v_os_kernel="$(uname -r)"
echo "Platform: ${v_os_platform}, Kernel: ${v_os_kernel}"
v_uptime="$(uptime -p | sed -e 's/^up //' -e 's/,//')"
v_uptime_since="$(date -d "$(uptime -s)" "+%Y-%m-%d %H:%M:%S %z")"
echo "Uptime: ${v_uptime} since ${v_uptime_since}"
v_cpu_usage=$(top -bin1 | grep "^%Cpu(s)" | awk '{print $2+$4+$6}')
v_cpu_count=$(lscpu | grep "^CPU(s): " | awk '{print $2}')
v_process_count="$(ps aux | wc -l)"
echo "CPU: ${v_cpu_count}, Usage: ${v_cpu_usage}%, Processes: ${v_process_count}"
v_memory="$(free -b | grep ^Mem)"
v_memory_total=$(echo ${v_memory} | awk '/^Mem:/ {print $2}')
v_memory_used=$(echo ${v_memory} | awk '/^Mem:/ {print $3}')
v_memory_used_pct=$(awk "BEGIN {printf \"%.2f\", ${v_memory_used} / ${v_memory_total} * 100}")
v_memory_avail=$(echo "${v_memory_total} - ${v_memory_used}" | bc)
v_memory_avail_pct=$(awk "BEGIN {printf \"%.2f\", ${v_memory_avail} / ${v_memory_total} * 100}")
echo "Memory: Total $(f_byte_unit ${v_memory_total}), Used $(f_byte_unit ${v_memory_used}) (${v_memory_used_pct}%), Free $(f_byte_unit ${v_memory_avail}) (${v_memory_avail_pct}%)"
v_swap="$(free -b | grep ^Swap)"
v_swap_total=$(echo ${v_swap} | awk '/^Swap:/ {print $2}')
v_swap_used=$(echo ${v_swap} | awk '/^Swap:/ {print $3}')
v_swap_used_pct=$(awk "BEGIN {printf \"%.2f\", ${v_swap_used} / ${v_swap_total} * 100}")
v_swap_avail=$(echo "${v_swap_total} - ${v_swap_used}" | bc)
v_swap_avail_pct=$(awk "BEGIN {printf \"%.2f\", ${v_swap_avail} / ${v_swap_total} * 100}")
echo "Swap: Total $(f_byte_unit ${v_swap_total}), Used $(f_byte_unit ${v_swap_used}) (${v_swap_used_pct}%), Free $(f_byte_unit ${v_swap_avail}) (${v_swap_avail_pct}%)"
echo $(f_show_disk "/dev/sda1")
echo $(f_show_disk "/dev/sdb1")
while IFS= read -r v_line
do
if [ -n "$(echo ${v_line} | grep "^[0-9]")" ]
then
if [ -n "${v_nic_name}" ]
then
f_print_nic "${v_nic_name}" "${v_nic_name2}" "${v_nic_mac}" "${v_nic_status}" "${v_nic_ip}"
v_nic_name=
v_nic_status=
v_nic_name2=
v_nic_mac=
v_nic_ip=
fi
v_nic_name=$(echo ${v_line} | awk '{print $2}' | sed 's/:$//')
v_nic_status=$(echo ${v_line} | awk '{print $9}')
elif [ -n "$(echo ${v_line} | grep "^altname")" ]
then
v_nic_name2=$(echo ${v_line} | awk '{print $2}')
elif [ -n "$(echo ${v_line} | grep "^link")" ]
then
v_nic_mac=$(echo ${v_line} | awk '{print $2}')
elif [ -n "$(echo ${v_line} | grep "^inet ")" ]
then
v_nic_ip=$(echo ${v_line} | awk '{print $2}')
fi
done <<< $(ip a)
f_print_nic "${v_nic_name}" "${v_nic_name2}" "${v_nic_mac}" "${v_nic_status}" "${v_nic_ip}"
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment