第六周
1、编写脚本实现登陆远程主机。(使用expect和shell脚本两种形式)。
expect实现远程登陆:
#!/usr/bin/expect
spawn ssh 10.0.0.82
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "huawei123\n" }
}
interact
shell脚本实现:
2、生成10个随机数保存于数组中,并找出其最大值和最小值
3、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
4、总结查看系统负载的几种命令,总结top命令的指标大概什么含义(不要求全部写出来)
uptime:查看系统平均负载,1、5、15分钟的负责情况
top:查看系统实施的状态
iotpo:监控磁盘io
iftop:网络带宽的使用情况
nload:查看网络实时吞吐量
top命令各项指标
第一行:系统启动总时长,平均负载
第二行:总进程数,运行以及休眠的进程、停止的进程和僵尸进程数
第三行:cpu的使用情况
第四行:内存使用情况
第五行:swap空间的使用情况
PID:进程PID号
USER:启动进程的用户
PR:进程优先级
NI:nice值,负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:共享内存大小,单位kb
S:进程状态。D为不可中断的睡眠状态,R为运行,S为睡眠,T为跟踪/停止,Z为僵尸进程
%CPU:上次更新到现在的CPU时间占用比
%MEM:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计,单位1/100秒
COMMAND:进程名称(命令名/命令行
5、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
注:& 符号可以并发执行
#!/bin/bash
ip=192.168.0.
for i in {1..254};do
{
ping -c1 -W1 ${ip}$i &> /dev/null && echo "$ip$i is sucess" || echo "$ip$i is fail"
}&
done
wait
#!/bin/bash
net=10.0.0
ip=1
while [ $ip -lt 255 ];do
{
if ping -c1 -W1 $net.$ip &> /dev/null;then
echo "$net.$ip is sucess"
else
echo "$net.$ip is false"
fi
}&
let ip++
done
wait
6、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
注:命令现在命令行测试无误后再写道定时任务,%需要加\进行转义
[root@localhost ~]#mkdir /backup
crontab -e
#每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
1 30 * * 1-5 /usr/bin/tar Jcf /backup/etcbak-`date -d '-1day' +\%F-\%H`.tar.gz &> /dev/null