1.显示统计占用系统内存最多的进程,并排序。
ps aux | sort -k4nr | head -5
2.编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
使用for循环实现:
#!/bin/bash
N=192.168.0
for H in {1…254};do
{
ping -c3
N
.
N.
N.H &> /dev/null
if [
?
−
e
q
0
]
;
t
h
e
n
e
c
h
o
"
? -eq 0 ];then echo "
?−eq0];thenecho"N.
H
s
u
c
c
e
s
s
!
"
e
l
s
e
e
c
h
o
"
H success!" else echo "
Hsuccess!"elseecho"N.$H fail!"
fi
} &
done
使用while循环实现:
#!/bin/bash
N=192.168.0
H=1
while [ $H -lt 255 ];do
ping -c3 N . N. N.H &> /dev/null
if [
?
−
e
q
0
]
;
t
h
e
n
e
c
h
o
"
? -eq 0 ];then echo "
?−eq0];thenecho"N.
H
s
u
c
c
e
s
s
!
"
e
l
s
e
e
c
h
o
"
H success!" else echo "
Hsuccess!"elseecho"N.$H fail!"
fi
let HOSTID++
done
3.每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
通过crontab -e进入
30 1 * * 1,2,3,4,5 /usr/bin/tar -Jcf etcbak-date -d "-1 day" +%Y-%m-%d-%H
.tar.xz /etc &> /dev/null
4.工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警
#!/bin/bash
WARNING=80
MAIL=root@localhost
df |sed -rn ‘//dev/mapper/s#([1]+).* ([[:digit:]]+)%.*#\1 \2#p’|while read part use;do
if [ $use -gt $WARNING ];then
echo
p
a
r
t
w
i
l
l
b
e
f
u
l
l
,
u
s
e
d
:
part will be full,used:
partwillbefull,used:use% | mail -s “diskcheck_alert” $MAIL
fi
done
添加定时任务
*/10 * * * * /bin/bash /tmp/checkdisk.sh &> /dev/null
:space: ↩︎