7.5. 练习

这里有一些想法,帮助你开始在脚本中使用 if

  1. 使用 if/then/elif/else 结构来打印关于当前月份的信息。脚本应该打印这个月的天数,如果当前月份是二月,则给出关于闰年的信息。

  2. 使用 case 语句和 date 命令的另一种用法做同样的事情。

  3. 修改/etc/profile以便当你以 root 用户连接到你的系统时,你得到一个特殊的问候消息。

  4. 编辑leaptest.sh脚本,来自 7.2.4 节,使其需要一个参数,年份。测试是否只提供了一个参数。

  5. 编写一个名为whichdaemon.sh的脚本,该脚本检查 httpdinit 守护进程是否在你的系统上运行。如果 httpd 正在运行,脚本应该打印一条消息,例如,“这台机器正在运行一个 Web 服务器。” 使用 ps 来检查进程。

  6. 编写一个脚本,使用 scp 在远程机器上备份你的主目录。脚本应该在一个日志文件中报告,例如~/log/homebackup.log。如果你没有第二台机器来复制备份,使用 scp 来测试复制到 localhost。这需要在两台主机之间使用 SSH 密钥,否则你必须提供密码。SSH 密钥的创建在 man ssh-keygen 中解释。

  7. 调整来自 7.3.1 节 中第一个例子的脚本,以包括磁盘空间使用率正好为 90% 以及低于 10% 的情况。

  8. 脚本应该使用 tar cf 来创建备份,并使用 gzipbzip2 来压缩.tar文件。将所有文件名放在变量中。将远程服务器的名称和远程目录放在变量中。这将使将来更容易重用脚本或对其进行更改。

    脚本应该检查压缩存档是否存在。如果存在,首先删除它以防止输出生成。

    脚本还应该检查可用磁盘空间。请记住,在任何给定时刻,你的磁盘上可能同时存在主目录中的数据、.tar文件中的数据以及压缩存档中的数据。如果磁盘空间不足,则在日志文件中退出并显示错误消息。

    脚本应该在退出之前清理压缩存档。