1.设置系统名称

hostnamectl set-hostname openEuler-192-168-88-123

2.设置时间同步

① 配置文件修改

    cp /etc/chrony.conf /etc/chrony.conf_default
    vi  /etc/chrony.conf

修改server即可,删掉其他的,添加要同步时间的源服务器ip,格式如下:

    server x.x.x.x iburst
    pool 10.238.104.97 iburst

② 重启下客户端chrony服务

使用systemctl restart chronyd.service重启即可。

③ 同步

客户端使用chronyc sources -v命令完成同步即可

3.创建/usr/local/share/systemMonitor.sh脚本,内容如下:

#!/bin/bash
source ~/.bash_profile
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/openssh/bin:/root/bin
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#需要设置的变量 
#   1. set hostname
#   hostnamectl set-hostname openEuler-192-168-88-123
#   说明:hostname名称统一规范,如系统版本+ip
#   2. set 文件存放路径
#   location_Dir
#   3. set contab
#   0 * * * * /bin/bash /usr/local/share/systemMonitor.sh  > /dev/null 2>&1
#   说明:需将脚本放置在/usr/local/share/目录下
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# 生成数据的目录
location_Dir=/var/log/share/`date "+%Y%m"`/
filename=`date "+%Y%m%d%H"`
lastMonthFilename=/var/log/share/`date -d 'last month' "+%Y%m"`/`date -d 'last month' "+%Y%m%d%H"`.txt
echo "lastMonthFilename:"${lastMonthFilename}
ethInfoFile=/var/log/share/ethInfo.txt

# 判断目录是否存在
if [ ! -d "$location_Dir" ]; then
    mkdir -p "$location_Dir"
fi

# 系统时间
sysTime=`date '+%Y-%m-%d %H:%M:%S'`
echo "sysTime:"$sysTime

# 系统名称
hostname=`hostname`
echo "hostname:"$hostname

# 系统版本
#if [  -f  /etc/redhat-release ]; then
#    sysRelease=`cat /etc/redhat-release`
#    sysReleaseVer=`cat /etc/redhat-release|grep -Eo "[0-9].*" | awk -F'.' '{print $1}'`
#else
#    sysRelease=`cat /etc/lsb-release | grep "DISTRIB_DESCRIPTION"|awk -F"\"" '{print $2}'`
#    sysReleaseVer=`cat /etc/lsb-release | grep "DISTRIB_DESCRIPTION"|awk -F"\"" '{print $2}'|awk '{print $2}'|awk -F. '{print $1}'`
#fi
sysRelease=`cat /etc/os-release | grep "PRETTY_NAME" | awk -F '\"' '{print $2}'`
sysReleaseVer=`cat /etc/os-release | grep "VERSION_ID" | awk -F '\"' '{print $2}'`
echo "sysRelease:"$sysRelease
echo "sysReleaseVer:"$sysReleaseVer

# 内核版本
kernel=`uname -r`
echo "kernel:"$kernel

# sshd版本
sshVersion=`ssh -V 2>&1 | awk -F "," '{print $1}'`
echo "sshVersion:"$sshVersion

# 系统开机时长(天)
#upTime=`uptime | awk '{print $3}'| awk -F"," '{print $1}'`
upTime=`uptime | awk -F',' '{print $1}' |awk '{print $3,$4}'`
echo "upTime:"$upTime

# 要监控的网卡,只能监控1个
# ethName="eth0"
# 网卡ip
# ethIp=`ifconfig ${ethName%*:} 2> /dev/null | awk '/inet/ {print $2}' | cut -f2 -d ":" |awk 'NR==1 {print $1}'`

# 获取设备网卡、ip、速率和流量
ethInfo=()
for ethName in `ifconfig | grep -o ^[a-z0-9:]*|grep -v lo|awk -F':' '{print $1}'`;
do  
    # 获取网卡ip
    ethIp=`ifconfig ${ethName%*:} 2> /dev/null | awk '/inet/ {print $2}' | cut -f2 -d ":" |awk 'NR==1 {print $1}'`
    # 获取网卡协商速率
    ethSpeed=`ethtool ${ethName}|grep Speed|awk '{print $2}'`
    # 获取网卡流量
    RXpre=$(cat /proc/net/dev | grep $ethName | tr : " " | awk '{print $2}')
    TXpre=$(cat /proc/net/dev | grep $ethName | tr : " " | awk '{print $10}')
    sleep 2
    RXnext=$(cat /proc/net/dev | grep $ethName | tr : " " | awk '{print $2}')
    TXnext=$(cat /proc/net/dev | grep $ethName | tr : " " | awk '{print $10}')
    RX=$((${RXnext} - ${RXpre}))
    TX=$((${TXnext} - ${TXpre}))
    ethRX=$(echo $RX | awk '{print $1/1024}')
    ethTX=$(echo $TX | awk '{print $1/1024}')
    ethInfo+=($ethName":"$ethIp":"$ethSpeed":"$ethRX":"$ethTX";")
done
echo "ethInfo:"$ethInfo

#负载
CPUloadAverage1=`uptime |awk -F',' '{print $3}' |awk -F ":" '{print $2}'|sed -e 's/[ ]*//g'`
CPUloadAverage5=`uptime |awk -F',' '{print $4}' |sed -e 's/[ ]*//g'`
CPUloadAverage15=`uptime |awk -F',' '{print $5}' |sed -e 's/[ ]*//g'`
echo "CPUloadAverage1:"$CPUloadAverage1
echo "CPUloadAverage5:"$CPUloadAverage5
echo "CPUloadAverage15:"$CPUloadAverage15

# CPU
CPUmodel=`cat /proc/cpuinfo | grep name | sort |uniq| awk -F ":" '{print $2}'`
CPUphysicalNum=`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`
CPUcoreNum=`cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l`
CPUprocessorNum=`cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l`
CPUuseage=`top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`
echo "CPUmodel:"$CPUmodel
echo "CPUphysicalNum:"$CPUphysicalNum
echo "CPUcoreNum:"$CPUcoreNum
echo "CPUprocessorNum:"$CPUprocessorNum
echo "CPUuseage:"$CPUuseage

# 内存使用情况
MemTotal=`cat /proc/meminfo  | grep -w MemTotal | awk '{print $2/1024}'`
MemFree=`cat /proc/meminfo  | grep -w MemFree | awk '{print $2/1024}'`
MemBuffers=`cat /proc/meminfo  | grep -w Buffers | awk '{print $2/1024}'`
MemCached=`cat /proc/meminfo  | grep -w Cached | awk '{print $2/1024}'`
MemSwapTotal=`cat /proc/meminfo  | grep -w SwapTotal | awk '{print $2/1024}'`
MemSwapFree=`cat /proc/meminfo  | grep -w SwapFree | awk '{print $2/1024}'`
MemAvailable=`cat /proc/meminfo  | grep -w MemAvailable | awk '{print $2/1024}'`
echo "MemTotal:"$MemTotal
echo "MemFree:"$MemFree
echo "MemBuffers:"$MemBuffers
echo "MemCached:"$MemCached
echo "MemSwapTotal:"$MemSwapTotal
echo "MemSwapFree:"$MemSwapFree
echo "MemAvailable:"$MemAvailable

# 磁盘
# diskUse=`df -h | grep -v Filesystem | awk '{print $1,",",$5,",",$6}'| sed -e 's/[ ]*//g'`
diskNum=`fdisk -l | grep Disk | grep -e "/dev/sd" -e "/dev/vd" | awk '{print $2,$3,$4}'|awk -F"," '{print $1,";"}'|sed -e 's/[ ]*//g'|xargs`
diskRootPer=`df -h |grep '/$'|awk '{print $(NF-1)}'`
diskBootPer=`df -h |grep '/boot$'|awk '{print $(NF-1)}'`
diskHomePer=`df -h |grep '/home$'|awk '{print $(NF-1)}'`
diskvarPer=`df -h |grep '/var$'|awk '{print $(NF-1)}'`
diskDataPer=`df -h |grep '/data$'|awk '{print $(NF-1)}'`
diskTmpPer=`df -h |grep '/dev/shm$'|awk '{print $(NF-1)}'`
echo "diskNum:"$diskNum
echo "diskRootPer:"$diskRootPer
echo "diskBootPer:"$diskBootPer
echo "diskHomePer:"$diskHomePer
echo "diskvarPer:"$diskvarPer
echo "diskDataPer:"$diskDataPer
echo "diskTmpPer:"$diskTmpPer

# 监听的端口
netstat=`netstat -lntup | grep LISTEN | awk '{print $1,":",$4,":",$7,";"}'| sed -e 's/[ ]*//g'| xargs`
echo "netstat:"$netstat

# 可以登录系统的用户
loginUser=`cat /etc/passwd | grep -w "/bin/bash"| awk -F ':' '{print $1,":"$7,";"}'|sed -e 's/[ ]*//g'|xargs`
echo "loginUser:"$loginUser

# 登录过系统的用户
lastUser=`last |grep -v "^$"| awk '{print $1,":",$3,";"}' | sort |uniq |sed -e 's/[ ]*//g'| xargs`
echo "lastUser:"$lastUser
# iptables
#if [ $sysReleaseVer -eq 6 ]; then
#    iptables_head5=`iptables -nL | grep -v "^$" | head -n 5|sed 's/$/\;/'| xargs`
#    iptables_tail5=`iptables -nL | grep -v "^$" | tail -n 5|sed 's/$/\;/'| xargs`
#elif [ $sysReleaseVer -eq 7 ]; then
#    iptables_head5=`firewall-cmd --list-all | grep -v "^$" | head -n 5 |sed 's/$/\;/'| xargs`
#    iptables_tail5=`firewall-cmd --list-all | grep -v "^$" | tail -n 5 |sed 's/$/\;/'| xargs`
#else
#    iptables_head5=`iptables -nL | grep -v "^$" | head -n 5|sed 's/$/\;/'| xargs`
#    iptables_tail5=`iptables -nL | grep -v "^$" | tail -n 5|sed 's/$/\;/'| xargs`
#fi
iptables_head1=`iptables -nL | grep -v "^$" | head -n 1|sed 's/$/\;/'| xargs`
iptables_tail1=`iptables -nL | grep -v "^$" | tail -n 1|sed 's/$/\;/'| xargs`
iptables_status=`systemctl status iptables | grep "Active" |awk '{print $2}'`
echo "iptables_head1:"$iptables_head1
echo "iptables_tail1:"$iptables_tail1
echo "iptables_status:"$iptables_status

# 数据写入文件
echo "sysTime,hostname,sysRelease,kernel,sshVersion,upTime,ethInfo,CPUmodel,CPUphysicalNum,CPUcoreNum,CPUprocessorNum,CPUloadAverage1,CPUloadAverage5,CPUloadAverage15,CPUuseage,MaemTotal,MemFree,MemBuffers,MemCached,MemSwapTotal,MemSwapFree,MemAvailable,diskNum,diskRootPer,diskBootPer,diskHomePer,diskVarPer,diskDataPer,diskTmpPer,netstat,loginUser,lastUser,iptables_status,iptables_head1,iptables_tail1" > $location_Dir${filename}.txt
echo "$sysTime,$hostname,$sysRelease,$kernel,$sshVersion,$upTime,${ethInfo[@]},$CPUmodel,$CPUphysicalNum,$CPUcoreNum,$CPUprocessorNum,$CPUloadAverage1,$CPUloadAverage5,$CPUloadAverage15$CPUuseage,$MemTotal,$MemFree,$MemBuffers,$MemCached,$MemSwapTotal,$MemSwapFree,$MemAvailable,$diskNum,$diskRootPer,$diskBootPer,$diskHomePer,$diskVarPer,$diskDataPer,$diskTmpPer,$netstat,$loginUser,$lastUser,$iptables_status,$iptables_head1,$iptables_tail1" >> $location_Dir${filename}.txt

# 增加文件权限
sleep 5
chmod 755 $location_Dir${filename}.txt
chmod 755 $location_Dir

# 删除上个月的数据
if [ ! -f "${lastMonthFilename}" ];then
  echo "${lastMonthFilename}文件不存在"
  else
  rm -f ${lastMonthFilename}
fi

# 退出
exit 0

4.创建定时任务

0 * * * * /bin/bash /usr/local/share/systemMonitor.sh

会当凌绝顶
9 声望3 粉丝