《Linuⅸx操作系统》实验指导/实验七:通过 Shell编程实现操作系统管理维护 《 Linux操作系统》实验指导 实验七:通过 Shelll 编程实现操作系统管理维护 、实验目的 1、掌握Shel的基础语法; 2、掌握 Bash shell的基础语法 3、掌握文本工具awk、sed的使用方法; 4、掌握 Shell编程实现系统管理的方法: 5、掌握 Linux操作系统中计划任务的实现方法 实验学时 三、实验类型 创新性 四、实验需求 1、硬件 单机虚拟化:每人配备计算机1台,计算机接入实验室局域网,且使用固定IP地址 云服务器:每人配备计算机1台、云服务器1台,云服务器提供SSH方式的远程管理。 2、软件 Windows7操作系统,安装 Mware Workstation10+、 PuTty软件。 3、网络 支持对互联网的访问。 4、工具 无 五、实验理论 1、 Linux shel的基本内容 2、 Bash shell的基本内容 3、awk、sed的基本原理 4、cron的运行原理。 六、预备知识 1、 Linux中文本工具的基本使用方法 Shell的基本命令; 管理科学与工程学科/共8页第1页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 1 页 《Linux 操作系统》实验指导 实验七:通过 Shell 编程实现操作系统管理维护 一、实验目的 1、掌握 Shell 的基础语法; 2、掌握 Bash Shell 的基础语法; 3、掌握文本工具 awk、sed 的使用方法; 4、掌握 Shell 编程实现系统管理的方法; 5、掌握 Linux 操作系统中计划任务的实现方法。 二、实验学时 2 学时 三、实验类型 创新性 四、实验需求 1、硬件 单机虚拟化:每人配备计算机 1 台,计算机接入实验室局域网,且使用固定 IP 地址。 云服务器:每人配备计算机 1 台、云服务器 1 台,云服务器提供 SSH 方式的远程管理。 2、软件 Windows 7 操作系统,安装 VMware Workstation 10+、PuTTY 软件。 3、网络 支持对互联网的访问。 4、工具 无 五、实验理论 1、Linux Shell 的基本内容; 2、Bash Shell 的基本内容; 3、awk、sed 的基本原理; 4、cron 的运行原理。 六、预备知识 1、Linux 中文本工具的基本使用方法; 2、Linux 下 Shell 的基本命令;
《Linuⅸx操作系统》实验指导/实验七:通过 Shell编程实现操作系统管理维护 2 3、Linuⅸκ操作系统中常见的文本处理命令有哪些?请根据以前学习,进行总结并完成表 1-1常见的文本处理命令一览表 表1-1常见的文本处理命令一览表 文本处理命令 应用场景 文本处理命令 应用场景 要求 请查阅相关资料,完成表1-1的填写,至少需要填写8条常见的文本处理命令,并将表格填 写到实验报告册中 4、 Linuxκ操作系统中常见的査看各种设备和资源的命令有哪些?请根据以前学习,进行 总结并完成表1-2常见的设备和资源状态查看命令一览表 表1-2常见的设备和资源状态查看命令一览表 命令 应用场景 命令 应用场景 要求 请查阅相关资料,从操作系统的内核版本、系统版本、CPU、内存、磁盘、用户信息、系统 程、网络信息等方面完成表1-2的填写,至少需要填写12条设备和资源状态查看命令 并将表格填写到实验报告册中。 七、实验任务 1、掌握awk、sed的使用方法; 2、掌握通过awk、sed实现系统管理与维护的方法 3、掌握计划任务实现系统管理与维护的方法 管理科学与工程学科/共8页第2页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 2 页 3、Linux 操作系统中常见的文本处理命令有哪些?请根据以前学习,进行总结并完成表 1-1 常见的文本处理命令一览表。 表 1-1 常见的文本处理命令一览表 文本处理命令 应用场景 文本处理命令 应用场景 要求: 请查阅相关资料,完成表 1-1 的填写,至少需要填写 8 条常见的文本处理命令,并将表格填 写到实验报告册中。 4、Linux 操作系统中常见的查看各种设备和资源的命令有哪些?请根据以前学习,进行 总结并完成表 1-2 常见的设备和资源状态查看命令一览表。 表 1-2 常见的设备和资源状态查看命令一览表 命令 应用场景 命令 应用场景 要求: 请查阅相关资料,从操作系统的内核版本、系统版本、CPU、内存、磁盘、用户信息、系统 进程、网络信息等方面完成表 1-2 的填写,至少需要填写 12 条设备和资源状态查看命令, 并将表格填写到实验报告册中。 七、实验任务 1、掌握 awk、sed 的使用方法; 2、掌握通过 awk、sed 实现系统管理与维护的方法; 3、掌握计划任务实现系统管理与维护的方法
Lmx操作系统)》实验指导/实验七:通过Sml编程实现操作系统管理维护3 八、实验步骤 1、实验场景与实验环境准备 本实验可根据实验室的具体条件,在单机虚拟化和云服务器两种场景下开展实验教学 (1)单机虚拟化场景下开展实验教学 实验场景 每位学生通过物理主机上的虚拟化软件 VMware workstation安装 Ubuntu server虚拟操作系 统,虚拟操作系统 Ubuntu server配备固定P地址,并开启SSH远程管理服务。 实验准备 ①启动虚拟化软件 Mware workstation并附加上 Ubuntu server操作系统; ②配置 Ubuntu Server操作系统的网络,并在虚拟主机上使用Ping命令进行网络连通性测 ③在虚拟主机上安装 openssh,ufwo开启 openssh服务,并设置ufw的规则为允许 172.162x/24的主机访问,开放22端口 ④虚拟主机后台运行,通过物理主机上的 PuTTY软件,连接 Ubuntu Server操作系统 (2)云服务器场景下开展实验教学 实验场景 在云服务器为学生安装部署 Linux操作系统,每个操作系统配备固定IP地址,并开启SSH远 程管理服务,并把root用户权限和远程访问信息提供给学生。 实验准备 学生使用 Windows7操作系统开展实验学习,使用 PuTTY软件根据教师提供的云服务器访问 信息远程访问实验用的Linu操作系统。 2、文本处理工具—awk和sed (1)aw的用法 任何awk语句都是由模式和动作组成。模式决定动作何时触发和触发事件,动作执行对输入 行的处理。awk认为输入文件是结构化的,awk将每个输入文件行定义为记录,行中的每个字符 串定义为域,域之间用空格、Tab键或其他符号进行分隔,分隔域的符号叫做分隔符。 awk常用内置变量如1-3awk常见的内置变量表所示 常见的内置变量表 变量 含义 变量 含义 当前记录 SI-Sn 当前记录的第n个字段 输入字段分隔符,默认是空格 当前记录中的字段个数 已经读出的记录数 输入记录分隔符 输出域分隔符,默认是空格 ORS 输出记录分隔符,默认是换行符 ARGC 命令参数个数 ARGV命令行参数数组 FILENAME当前输入文件的文件名 FNR 当前记录数 管理科学与工程学科/共8页第3页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 3 页 八、实验步骤 1、实验场景与实验环境准备 本实验可根据实验室的具体条件,在单机虚拟化和云服务器两种场景下开展实验教学。 (1)单机虚拟化场景下开展实验教学 实验场景: 每位学生通过物理主机上的虚拟化软件 VMware workstation 安装 Ubuntu Server 虚拟操作系 统,虚拟操作系统 Ubuntu Server 配备固定 IP 地址,并开启 SSH 远程管理服务。 实验准备: ①启动虚拟化软件 VMware workstation 并附加上 Ubuntu Server 操作系统; ②配置 Ubuntu Server 操作系统的网络,并在虚拟主机上使用 Ping 命令进行网络连通性测 试; ③在虚拟主机上安装 openssh,ufw。开启 openssh 服务,并设置 ufw 的规则为允许 172.16.2.x/24 的主机访问,开放 22 端口。 ④虚拟主机后台运行,通过物理主机上的 PuTTY 软件,连接 Ubuntu Server 操作系统。 (2)云服务器场景下开展实验教学 实验场景: 在云服务器为学生安装部署 Linux 操作系统,每个操作系统配备固定 IP 地址,并开启 SSH 远 程管理服务,并把 root 用户权限和远程访问信息提供给学生。 实验准备: 学生使用 Windows 7 操作系统开展实验学习,使用 PuTTY 软件根据教师提供的云服务器访问 信息远程访问实验用的 Linux 操作系统。 2、文本处理工具——awk 和 sed (1)awk 的用法 任何 awk 语句都是由模式和动作组成。模式决定动作何时触发和触发事件,动作执行对输入 行的处理。awk 认为输入文件是结构化的,awk 将每个输入文件行定义为记录,行中的每个字符 串定义为域,域之间用空格、Tab 键或其他符号进行分隔,分隔域的符号叫做分隔符。 awk 常用内置变量如 1-3 awk 常见的内置变量表所示: 表 1-3 awk 常见的内置变量表 变量 含义 变量 含义 $0 当前记录 $1~$n 当前记录的第 n 个字段 FS 输入字段分隔符,默认是空格 NF 当前记录中的字段个数 NR 已经读出的记录数 RS 输入记录分隔符 OFS 输出域分隔符,默认是空格 ORS 输出记录分隔符,默认是换行符 ARGC 命令参数个数 ARGV 命令行参数数组 FILENAME 当前输入文件的文件名 FNR 当前记录数
红inⅸ操作系统》实验指导/实验七:通过Shl编程实现操作系统管理维护4 RSTART被匹配函数匹配的字符串首 RLENGTH被匹配函数匹配的字符串长度 ①在屏幕中输出etc/ passwd文件 awk'iprint $of'/etc/passwd ②在屏幕中输出系统中所有用户名 k-F:'iprint $l)/etc/passw ③在屏幕中输出第一行的最后一个字段 awk-F: 'NR=lprint $NF)/etc/passwd awk也支持正则表达式、关系运算符、逻辑运算符、算数运算符、控制语句、管道流河 格式化输出。 ①在屏幕中输出/ etc/passwd文件下不是以root开头的前三行数据 awk-F: !/root/print so,/etc/passwd head -3 ②在屏幕中输出 etc/passwd文件下uid等于1000的用户名 0o print $1;/etc/passwd ③在屏幕中输出系统中所有系统用户的信息 awk-F: $31=0&& $3 500{prnt$"的UID是"$3",用户类型为普通用户"}else{ print$1"的 UID是"$3",用户类型为系统用户"}}/ etc/passwd ⑤在屏幕中格式化输出用户名、UID、用户组目录 awk-F: 'printf"%-20s%-10s%sIn"1,$3, $6,' /etc/passwd (2)sed的用法 sed可对文件中的行内容进行删除、改变、添加、插入、交换等操作。sed总是以行对输 入进行处理,并且sed处理的不是原文件而是原文件的拷贝 sed命令行格式为: sed [options]' command' file, sed常见的命令如表1-sed常见的命令 表所示: 表1-4sd常见的命令表 变量 含义 变量 含义 在当前行后添加一行或多行内容 c 用新文本替换当前行中的文本 adhq 删除行 在当前行之前插入文本 已经读出的记录数 H 输入记录分隔符 结束或退出sed r 在文件中读取输入行 对所选行以外的行应用所有命令 S 字符串替换 打印当前行号 表示把行写入一个文件 ①在屏幕中输出除第一行的所有文本内容 sed'ld' /etc/passwd ②在屏幕中输出第二行到最后一行的内容 sed-n 2, Sp/etc/passwd 管理科学与工程学科/共8页第4页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 4 页 RSTART 被匹配函数匹配的字符串首 RLENGTH 被匹配函数匹配的字符串长度 ①在屏幕中输出/etc/passwd 文件 awk '{print $0}' /etc/passwd ②在屏幕中输出系统中所有用户名 awk -F : '{print $1}' /etc/passwd ③在屏幕中输出第一行的最后一个字段 awk -F: 'NR==1{print $NF}' /etc/passwd awk 也支持正则表达式、关系运算符、逻辑运算符、算数运算符、控制语句、管道流河 格式化输出。 ①在屏幕中输出/etc/passwd 文件下不是以 root 开头的前三行数据 awk -F : '!/^root/{print $0}' /etc/passwd|head -3 ②在屏幕中输出/etc/passwd 文件下 uid 等于 1000 的用户名 awk -F: '$3 == 1000 {print $1}' /etc/passwd ③在屏幕中输出系统中所有系统用户的信息 awk -F: '$3 !=0 && $3 500) {print $1"的 UID 是"$3",用户类型为普通用户"} else { print $1"的 UID 是"$3",用户类型为系统用户"} }' /etc/passwd ⑤在屏幕中格式化输出用户名、UID、用户组目录 awk -F : '{printf " %-20s %-10s %s\n",$1,$3,$6}' /etc/passwd (2)sed 的用法 sed 可对文件中的行内容进行删除、改变、添加、插入、交换等操作。sed 总是以行对输 入进行处理,并且 sed 处理的不是原文件而是原文件的拷贝。 sed 命令行格式为:sed [options] ' command' file。sed 常见的命令如表 1-4 sed 常见的命令 表所示: 表 1-4 sed 常见的命令表 变量 含义 变量 含义 a\ 在当前行后添加一行或多行内容 c\ 用新文本替换当前行中的文本 d 删除行 i\ 在当前行之前插入文本 h 已经读出的记录数 H 输入记录分隔符 q 结束或退出 sed r 在文件中读取输入行 ! 对所选行以外的行应用所有命令 s 字符串替换 = 打印当前行号 w 表示把行写入一个文件 ①在屏幕中输出除第一行的所有文本内容 sed '1d' /etc/passwd ②在屏幕中输出第二行到最后一行的内容 sed -n '2,$p' /etc/passwd
Lmx操作系统)》实验指导/实验七:通过Sml编程实现操作系统管理维护5 ③在屏幕中输出etc/ passwd文件下包含root的行 sed-n/root/p/etc/passwd ④在 etc/passwd文件中的第一行后增加两行内容 sed'la testintest'/etc/passwd head -n 3 ⑤把etc/ passwd文件中第一行root字符串替换为 admin seds/root/admin/g /etc/passwd head -n 1 要求 (1)请编写Shel程序,根据本班上学期的期末成绩单进行计算,程序运行结果为在屏幕中 输出本班平均成绩前10名学生的学号,平均分。 (2)请编写Shel程序,根据本班上学期的期未成绩单进行计算,程序运行结果为在屏幕中 输出本班每科成绩最高的学生的学号,科目、成绩。 请根据上述2个要求,进行具体实验,并将Shel程序填写到实验报告册中, 成绩单内容格式为 2080001,张三,语文,80,数学,75,英语,80 2080002,李四,语文,82,数学,80,英语,75 3、通过awk、sed实现系统维护 (1)查询 apache日志文件里访问量前十的P地址,并按从多到少排列 cat access log awk(print $Il sort uniq-c sort-n-r head-n 10 (2)查看访问次数最多的网页 cat access log awk'iprint $7)luniq-c I sort -n-r head-n 20 要求 (1)请编写Shel程序,对指定目录/ar/www下的所有文件进行操作,程序运行结果为在 屏幕中输出文件总数以及每个文件的文件名、文件大小。 请根据上述要求,进行具体实验,并将She程序填写到实验报告册中。 4、计划任务的相关简介 (1)cron的运行原理 Linux上周期性任务通常都是由cron这个守护进程完成的,它随系统启动而启动。当cron启 动时,它会读取配置文件,并把信息保存在内存中。每过一分钟,cron重新检查配置文件,并执 行这一分钟内安排的任务。 cron启动命令 sudo /etc/init. d/cron start #启动cron sudo /etc/init. d/cron stop #停止cron sudo /etc/init. d/cron restart #重新启动cron (2)管理用户的cron计划任务 用户提交的 crontab文件需要得到系统管理员的认可。为此,管理员需要建立!etc/ cron allow 和 /etc/crondeny文件 etc/ cron allow文件列出了可以提交 crontab的用户,与此相反, /etc/crondeny列出了不可以 提交 crontab的用户。文件的格式非常简单:每行一个用户名。 (3)理解cron配置文件 在cron配置文件的最后一部分是管理员定制计划任务的地方。每一行代表一条任务计划,其 管理科学与工程学科/共8页第5页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 5 页 ③在屏幕中输出/etc/passwd 文件下包含 root 的行 sed -n '/root/p' /etc/passwd ④在/etc/passwd 文件中的第一行后增加两行内容 sed '1a test\ntest' /etc/passwd | head -n 3 ⑤把/etc/passwd 文件中第一行 root 字符串替换为 admin sed 's/root/admin/g' /etc/passwd | head -n 1 要求: (1)请编写 Shell 程序,根据本班上学期的期末成绩单进行计算,程序运行结果为在屏幕中 输出本班平均成绩前 10 名学生的学号,平均分。 (2)请编写 Shell 程序,根据本班上学期的期末成绩单进行计算,程序运行结果为在屏幕中 输出本班每科成绩最高的学生的学号,科目、成绩。 请根据上述 2 个要求,进行具体实验,并将 Shell 程序填写到实验报告册中。 成绩单内容格式为: 2080001,张三,语文,80,数学,75,英语,80 2080002,李四,语文,82,数学,80,英语,75 3、通过 awk、sed 实现系统维护 (1)查询 apache 日志文件里访问量前十的 IP 地址,并按从多到少排列 cat access.log | awk ' {print $1}' | sort | uniq -c | sort -n -r | head –n 10 (2)查看访问次数最多的网页 cat access.log | awk '{print $7}'|uniq -c | sort -n -r | head -n 20 要求: (1)请编写 Shell 程序,对指定目录/var/www 下的所有文件进行操作,程序运行结果为在 屏幕中输出文件总数以及每个文件的文件名、文件大小。 请根据上述要求,进行具体实验,并将 Shell 程序填写到实验报告册中。 4、计划任务的相关简介 (1)cron 的运行原理 Linux 上周期性任务通常都是由 cron 这个守护进程完成的,它随系统启动而启动。当 cron 启 动时,它会读取配置文件,并把信息保存在内存中。每过一分钟,cron 重新检查配置文件,并执 行这一分钟内安排的任务。 cron 启动命令 sudo /etc/init.d/cron start #启动 cron sudo /etc/init.d/cron stop #停止 cron sudo /etc/init.d/cron restart #重新启动 cron (2)管理用户的 cron 计划任务 用户提交的 crontab 文件需要得到系统管理员的认可。为此,管理员需要建立/etc/cron.allow 和/etc/cron.deny 文件。 /etc/cron.allow 文件列出了可以提交 crontab 的用户,与此相反,/etc/cron.deny 列出了不可以 提交 crontab 的用户。文件的格式非常简单:每行一个用户名。 (3)理解 cron 配置文件 在 cron 配置文件的最后一部分是管理员定制计划任务的地方。每一行代表一条任务计划,其
Lmx操作系统)》实验指导/实验七:通过Sml编程实现操作系统管理维护6 基本语法格式如下: minute hour day month weekday username command 前5个字段告诉cron应该在什么时候运行 command字段指定的命令。字段的具体含义 如表1-5cron字段意义表所示: 表1-5cron字段意义表 字段名 含义 范围 字段名含义 范围 minute 分钟 hour 小时 0~23 day 日期 l~31 月份 l~12 weekday星期几 0~-6 表示时间的字段常用下面4种形式 星号 用于匹配所有合法的时间 整数:精确匹配一个时间单位 用短划线“”隔开的两个整数,匹配两个整数之间代表的时间范围 用逗号“,”分隔的一系列整数,匹配这些整数所代表的时间单位。 参考程序 ①在每月20日的下午3:40执行某项任务 401520* ②在每周的周一至周三,以及每月的25号,每8分钟执行某项任务 (4)at命令 在on程序是用于计划安排那些周期性运行的系统管理任务,a命令则适合于那些一次性 at命令格式为:a参数]时间]。命令参数如下表1-6at命令参数表所示: 表1-6at命令参数表 参数 含义 参数 字段名 当任务完成后,给用户发送邮件 atrm的别名,删除计划任务 atq的别名,查看系统的计划任务 显示任务将被执行的时间 打印任务的内容到标准输出 显示版本信息 时间参数>以时间参数的形式提交要运行的任务K文件> 从指定文件读入任务 参考程序 ①在三天后下午4点执行指定文件 atf文件位置4pm+3days ②在5分钟后查找系统中 passwd文件 at now s at> find/-name"passwd"-print at> ③查看系统的计划任务,并删除指定的计划任务 管理科学与工程学科/共8页第6页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 6 页 基本语法格式如下: minute hour day month weekday username command 前 5 个字段告诉 cron 应该在什么时候运行 command 字段指定的命令。字段的具体含义 如表 1-5 cron 字段意义表所示: 表 1-5 cron 字段意义表 字段名 含义 范围 字段名 含义 范围 minute 分钟 0~59 hour 小时 0~23 day 日期 1~31 month 月份 1~12 weekday 星期几 0~6 表示时间的字段常用下面 4 种形式: 星号“*”:用于匹配所有合法的时间; 整数:精确匹配一个时间单位; 用短划线“-”隔开的两个整数,匹配两个整数之间代表的时间范围; 用逗号“,”分隔的一系列整数,匹配这些整数所代表的时间单位。 参考程序: ①在每月 20 日的下午 3:40 执行某项任务 40 15 20 * * ②在每周的周一至周三,以及每月的 25 号,每 8 分钟执行某项任务 0,8 * 25 * 1-3 (4)at 命令 cron 程序是用于计划安排那些周期性运行的系统管理任务,at 命令则适合于那些一次性 任务。 at 命令格式为:at[参数] [时间]。命令参数如下表 1-6 at 命令参数表所示: 表 1-6 at 命令参数表 参数 含义 参数 字段名 -m 当任务完成后,给用户发送邮件 -d atrm 的别名,删除计划任务 -I atq 的别名,查看系统的计划任务 -v 显示任务将被执行的时间 -c 打印任务的内容到标准输出 -V 显示版本信息 -t 以时间参数的形式提交要运行的任务 -f 从指定文件读入任务 参考程序: ①在三天后下午 4 点执行指定文件 at -f 文件位置 4pm + 3days ②在 5 分钟后查找系统中 passwd 文件 at now 5 at> find / -name “passwd” –print at> ③查看系统的计划任务,并删除指定的计划任务
《Linuⅸx操作系统》实验指导/实验七:通过 Shell编程实现操作系统管理维护 7 atm计划任务号 要求 (1)请使用at命令,5分钟后在屏幕上输出所有用户的用户名,UID,GID (2)请编写 Shell I脚本,对新建的用户不能有提交 crontab文件的权限。 请根据上述2个要求,进行具体实验,并将操作命令填写到实验报告册中。 5、Shl编程实现计划任务 (1)编写 Shell程序,备份 MySQL数据库到№ar/ www/databasebackup文件下。 Shell z程序名 为 mysqlbankup.sh #!/bin/bash password="123456 database="student" foldername="/var/www/databasebackup databasefilename=date+%y%m%d%H%M". sql if [-d sfoldername cd Sfoldername else mkdir Sfoldername d ifolder mysqldump-uSusername-p password Database> databasefilename cho" MySQL database Database Backup success cho"Backup file is Sdatabasefilename (2)添加计划任务,使得备份数据库脚本文件在每天的早晨6点执行一次 nano /etc/crontab root bash /home/student/mysqlbankup sh 要求 (1)编写计划任务,以每分钟为时间单位监控主机的磁盘空间,当磁盘使用空间超过90% 时,在ar/lg目录下新建 diskinfo ern文件,文件中记录磁盘使用空间超过90%的时间 磁盘使用率 (2)编写计划任务,在每天凌晨十二点钟自动删除系统中的空文件目录。 请根据上述2个要求,进行具体实验,并将 Shell i程序填写到实验报告册中 九、实验分析 l、 Linux计划任务 (1) Linux下计划任务有哪些?各有什么特点? (2) Linux的cron计划任务最短间隔只有一分钟,是否可以实现10秒间隔的计划任务? 要求 1、请查阅相关资料,回答上述(1)的问题,并将答案填写到实验报告册中。 管理科学与工程学科/共8页第7页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 7 页 atq atrm 计划任务号 要求: (1)请使用 at 命令,5 分钟后在屏幕上输出所有用户的用户名,UID,GID。 (2)请编写 Shell 脚本,对新建的用户不能有提交 crontab 文件的权限。 请根据上述 2 个要求,进行具体实验,并将操作命令填写到实验报告册中。 5、Shell 编程实现计划任务 (1)编写 Shell 程序,备份 MySQl 数据库到/var/www/databasebackup 文件下。Shell 程序名 为 mysqlbankup.sh #!/bin/bash username="root" password="123456" database="student" foldername="/var/www/databasebackup" databasefilename="`date '+%y%m%d%H%M'`.sql" if [ -d $foldername ] then cd $foldername else mkdir $foldername cd $foldername fi mysqldump -u$username -p$password $database>$databasefilename cd ~ echo "MySQL database $database Backup success!" echo "Backup file is $databasefilename" (2)添加计划任务,使得备份数据库脚本文件在每天的早晨 6 点执行一次 nano /etc/crontab * 6 * * * root bash /home/student/mysqlbankup.sh 要求: (1)编写计划任务,以每分钟为时间单位监控主机的磁盘空间,当磁盘使用空间超过 90% 时,在/var/log 目录下新建 diskinfo.err 文件,文件中记录磁盘使用空间超过 90%的时间、 磁盘使用率。 (2)编写计划任务,在每天凌晨十二点钟自动删除系统中的空文件目录。 请根据上述 2 个要求,进行具体实验,并将 Shell 程序填写到实验报告册中。 九、实验分析 1、Linux 计划任务 (1)Linux 下计划任务有哪些?各有什么特点? (2)Linux 的 cron 计划任务最短间隔只有一分钟,是否可以实现 10 秒间隔的计划任务? 要求: 1、请查阅相关资料,回答上述(1)的问题,并将答案填写到实验报告册中
红inⅸ操作系统》实验指导/实验七:通过Shl编程实现操作系统管理维护8 2、请按照(2)的问题,设计具体实验进行验证,并将操作命令填写到实验报告册中 十、课外自主实验 1、数据备份 (1)编写计划任务,文件名为: Folder Backup.sh (2)实现对ar/www目录的备份,备份文件名为www.backup+时间+argz (3)备份时应对数据进行打包和压缩 (4)备份周期为每小时备份一次,备份时间为第15分钟。 要求: 请按照上述4个要求,进行具体实验,并将She‖!脚本填到实验报告册中 2、日志清除 (1)编写计划任务,文件名为: LogClear. sh (2)实现对一周前的 Apache日志文件进行清除 (3)Shel|脚本每周日凌晨执行一次 要求: 请按照上述3个要求,进行具体实验,并将Shel脚本填到实验报告册中, 十一、实验扩展资源 1、图书 (1)《鸟哥的 Linux私房菜》鸟哥人民邮电出版社; (2)《 Linux命令行大全》 William E Shotts人民邮电出版社 (3)《 Ubuntu linu从入门到精通》陶松人民邮电出版社 2、文章 (1) Linux定时执行工具cron:htp/os.5 lcto com/art201001/176436htm (2)awk,sed学习:http://blog.chinaunix.net/uid-26748613-id-3525942.html (3)Linux下常用的命令汇总http://blog.csdn.net/zdsfwy/article/details/7408596: (4)Linux计划任务:htp/blog163.com/koum@126/log/static/954038372009299329874 3、互联网资源 (1)Linux中国社区:http://linux.chinaunix.net (2) Linux中文交流社区:htp/ linux. cn (3)中国 Linux论坛:htp/ vww.linuxvedio cn 4、电子资源下载 http://ke.51xueweb.cn/linux.html 管理科学与工程学科/共8页第8页
《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 8 页 2、请按照(2)的问题,设计具体实验进行验证,并将操作命令填写到实验报告册中。 十、课外自主实验 1、数据备份 (1)编写计划任务,文件名为:FolderBackup.sh; (2)实现对/var/www 目录的备份,备份文件名为 www.backup+时间+tar.gz; (3)备份时应对数据进行打包和压缩; (4)备份周期为每小时备份一次,备份时间为第 15 分钟。 要求: 请按照上述 4 个要求,进行具体实验,并将 Shell 脚本填到实验报告册中。 2、日志清除 (1)编写计划任务,文件名为:LogClear.sh; (2)实现对一周前的 Apache 日志文件进行清除; (3)Shell 脚本每周日凌晨执行一次。 要求: 请按照上述 3 个要求,进行具体实验,并将 Shell 脚本填到实验报告册中。 十一、实验扩展资源 1、图书 (1)《鸟哥的 Linux 私房菜》 鸟哥 人民邮电出版社; (2)《Linux 命令行大全》 William E.Shotts 人民邮电出版社; (3)《Ubuntu Linux 从入门到精通》 陶松 人民邮电出版社。 2、文章 (1)Linux 定时执行工具 cron:http://os.51cto.com/art/201001/176436.htm; (2)awk、sed 学习:http://blog.chinaunix.net/uid-26748613-id-3525942.html; (3)Linux 下常用的命令汇总:http://blog.csdn.net/zdsfwy/article/details/7408596; (4)Linux 计划任务:http://blog.163.com/koumm@126/blog/static/954038372009299329874/。 3、互联网资源 (1)Linux 中国社区:http://linux.chinaunix.net/ (2)Linux 中文交流社区:http://linux.cn/ (3)中国 Linux 论坛:http://www.linuxvedio.cn/ 4、电子资源下载 http://ke.51xueweb.cn /Linux.html