1、显示统计占用系统内存最多的进程,并排序。
ps -eo pid,ppid,cmd,%mem --sort=-%mem
2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
# for循环版本1
#!/bin/bash
NET=192.168.0
for i in {1..254}; do
{
ping -c 1 -w 1 $NET.$i > /dev/null && echo "$NET.$i:success!" || echo "$NET.$i:fail!"
}&
done
wait
# for循环版本2
#!/bin/bash
NET=192.168.0
for ((i=1; i<254; i++));do
{
ping -c 1 -w 1 $NET.$i > /dev/null && echo "$NET.$i:success!" || echo "$NET.$i:fail!"
}&
done
wait
# while循环
declare -i i=0
NET=192.168.0
while [ $i -lt 255 ]; do
ping -c 1 -w 1 $NET.$i > /dev/null && echo "$NET.$i:success!" || echo "$NET.$i:fail!"
((i++))
done
3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
# 编写脚本backup.sh
cat > backup.sh << EOF
#!/bin/bash
[ -d /backup ] || mkdir /backup
/usr/bin/tar -cJf /backup/etcbak-\`date -d "-1 day" +"%F-%H"\`.tar.xz /etc &> /dev/null
EOF
# 给脚本添加执行权限
chmod u+x backup.sh
# 添加计划任务
echo ‘30 1 * * 1-5 /root/backup.sh‘ >> /var/spool/cron/root
# 查看计划任务
crontab -l
4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就发送邮件报警
# 编写检查所有分区利用率的脚本chkdisk.sh
#!/bin/bash
LIMIT=80
MAIL=root@localhost
df | sed -rn ‘/^\/dev\/sd/s#^([^[:space:]]+).* ([[:digit:]]+)%.*#\1 \2#p‘ | \
while read DISKPART USED;do
if [ $USED -gt $LIMIT ];then
echo "$DISKPART has been used $USED%" | mail -s "Warning" $MAIL
fi
done
# 给脚本添加执行权限
chmod u+x chkdisk.sh
# 添加计划任务
echo ‘* */6 * * 1-5 /root/chkdisk.sh‘ >> /var/spool/cron/root
# 查看计划任务
crontab -l
Shell脚本和计划任务实践