1、显示统计占用系统内存最多的进程,并排序。
[ root@localhost ~ ] # ps axu --sort -rss | head -n5
USER PID % CPU % MEM VSZ RSS TTY STAT START TIME COMMAND
gdm 1237 0.0 6.6 2920772 94880 ? Sl Aug01 0 : 22 /usr/bin/gnome-shell
gdm 1341 0.0 0.6 968360 9804 ? Sl Aug01 0 : 00 /usr/libexec/gsd-media-keys
gdm 1328 0.0 0.6 731348 9376 ? Sl Aug01 0 : 10 /usr/libexec/gsd-color
gdm 1315 0.0 0.6 634628 9308 ? Sl Aug01 0 : 00
同上
[ root@localhost ~ ] # ps axu | sort -k4nr | head -n5
gdm 1237 0.0 6.6 2920772 94884 ? Sl Aug01 0 : 22 /usr/bin/gnome-shell
gdm 1315 0.0 0.6 634628 9308 ? Sl Aug01 0 : 00 /usr/libexec/gsd-xsettings
gdm 1320 0.0 0.6 570748 8980 ? Sl Aug01 0 : 00 /usr/libexec/gsd-a11y-keyboard
gdm 1328 0.0 0.6 731348 9376 ? Sl Aug01 0 : 10 /usr/libexec/gsd-color
gdm 1341 0.0 0.6 968360 9804 ? Sl Aug01 0 : 00 /usr/libexec/gsd-media-keys
2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
#定义IP地址
vim ip_ping_for . sh
IP = 192.168 .25 .
PI = '/bin/ping -w1 -c1'
for HOST in { 1. .254 } ; do
{
if $PI $ { IP } $ { HOST } > / dev / null ; then
echo "${IP}${HOST} is a up "
else
echo "${IP}${HOST} is down"
fi
} &
# { } & :表示并发执行
done
unset IP HOST
[ root@localhost /data/scripts ] # sh ip_ping_for . sh
192.168 .25 .6 is a up
192.168 .25 .2 is a up
192.168 .25 .7 is a up
192.168 .25 .17 is a up
192.168 .25 .27 is a up
while实现
vim ip_ping_while . sh
while read ip ; do
{
/ bin / ping -w1 -c1 > / dev / null
if [ $? -eq 0 ] ; then
echo "$ip is up"
else
echo "$ip is down"
} &
done < / data / scripts / ip . txt
wait
[ root@localhost /data/scripts ] # cat ip . txt
192.168 .25 .6 is up .
192.168 .25 .37 is down .
192.168 .25 .17 is up .
192.168 .25 .27 is up .
192.168 .25 .7 is up .
192.168 .25 .2 is up .
3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
#判断backup目录是否存在,不存在创建
[ -d /backup ] | | mkdir / backup
# 定义时间,年-月-日-时 yesterday 前一天
A = ` date -d yesterday "+%Y-%m-%d" `
tar -cvf / backup / etc_backup$A . tar . gz / etc
结果:
[ root@localhost /data/scripts ] # ll / backup /
-rw-r--r-- 1 root root 38205440 Aug 2 19 : 56 etc_backup2020- 08 - 01. tar . gz
-j: bzip2 , -z: gzip , -J: xz
定时任务
# 2. 每周的工作日 1 : 30 ,将 / etc备份至 / backup目录中
30 1 * * 0 root sh / data / scripts / etc_backup . sh
4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警
vim disk . sh
# 取出最大的
MAX = ` df | grep "/dev/sda" | sed -nr 's@^.* ([0-9]+)%.*$@\1@p' | sort -nr | head -n1 `
NUMBER = 80
#取出最大的分区名字
NAME = ` df | grep "$MAX%" | cut -d " " -f1 `
if [ $MAX -gt $NUMBER ] ; then
echo -e "Warning......\n ${NAME}:${MAX} "
else
echo -e "一切正常"
fi
unset MAX UNMBER NAME
加入到定时任务中去
vim / etc / crontab
* / 10 * * * 1 - 5 root sh / data / scripts / disk . sh
或者
crontab -e
* / 10 * * * 1 - 5 root sh / data / scripts / disk . sh