1、显示统计占用系统内存最多的进程,并排序。
ps aux k -%mem|head -10
[root@centos7 ~]# ps aux k -%mem|head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
gdm 1634 0.5 7.0 3218084 130596 ? Sl 20:53 0:07 /usr/bin/gnome-shell
root 1572 0.1 1.3 296128 24336 tty1 Ssl+ 20:53 0:01 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-iaT34a/database -seat seat0 -nolisten tcp vt1
root 1057 0.0 1.0 574308 19520 ? Ssl 20:53 0:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
gdm 1749 0.0 0.8 639952 16628 ? Sl 20:53 0:00 /usr/libexec/gsd-power
gdm 1740 0.0 0.8 1012036 15548 ? Sl 20:53 0:00 /usr/libexec/gsd-media-keys
gdm 1716 0.0 0.7 615204 14820 ? Sl 20:53 0:00 /usr/libexec/gsd-xsettings
gdm 1728 0.0 0.7 714064 14524 ? Sl 20:53 0:00 /usr/libexec/gsd-color
gdm 1782 0.0 0.7 623032 14076 ? Sl 20:53 0:00 /usr/libexec/gsd-wacom
polkitd 625 0.0 0.7 616356 13804 ? Ssl 20:53 0:01 /usr/lib/polkit-1/polkitd --no-debug
2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
192.168.0.0/24
表示网络码占24位,就是说该网络上可以有254个主机(2^8-2)
IP范围:192.168.0.1~192.168.0.254 192.168.0.255是广播地址,不能被主机使用。
设置IP地址的时候:192.168.0.x 子网掩码:255.255.255.0
(1)for循环
#!/bin/bash
for HOSTID in {1..254};do
{
ping -c1 -w1 192.168.0.$HOSTID &>/dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$HOSTID success!"
else
echo "192.168.0.$HOSTID fail!"
fi
}
done
运行结果:for循环运行结果
(2)while循环
#!/bin/bash
declare -i HOSTID=1
while [ $HOSTID -lt 255 ] ;do
{
ping -c1 -w1 192.168.0.$HOSTID &>/dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$HOSTID success!"
else
echo "192.168.0.$HOSTID fail!"
fi
}
let HOSTID++
done
运行结果:while循环运行结果
3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
第一步:创建/backup文件夹
mkdir /backup
第二步:在/etc/crontab中设定计划任务
30 1 * * 1-5 root /usr/bin/tar -Jcvf /backup/etcbak-`date -d -1day "+\%F-\%H"`.tar.xz /etc
vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
30 1 * * 1-5 root /usr/bin/tar -Jcvf /backup/etcbak-`date -d -1day "+\%F-\%H"`.tar.xz /etc
4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警
第一步:编写脚本
vim checkdisk.sh
#!/bin/bash
useRate=`df|grep '^/dev'|sed -E 's/(.*)( )([0-9]+)%( .*)/\3/g'|sort -nr|head -1`
if [ $useRate -gt 80 ];then
mail root << EOF
the use% of disk is more than 80
EOF
fi
第二步:给脚本增加执行权限
chmod +x checkdisk.sh
第三步:设置计划任务
vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/10 * * * 1-5 root /bin/bash /data/checkdisk.sh
查看结果:监控磁盘使用率结果