ITEEDU

7.5. 练习

这里有些能让你在脚本中开始使用 if 的好建议:

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

  2. 同样地,使用一个 case 语句和一个使用 date 命令的方法。

  3. 修改 /etc/profile 使你以 root 身份连接的时候得到一个特殊的问候消息。

  4. 编辑 第 7.2.4 节 “布尔操作”leaptest.sh 脚本来使它需要一个参数year运行。 测试恰好提供一个参数。

  5. 编写一个叫做 whichdaemon.sh 的脚本来检查 httpdinit 守护进程是否在你的系统上运行。如果一个 httpd 进程在运行,这个脚本应该能打印一个消息类似, “This machine is running a web server.” 使用 ps 来检查进程。

  6. 编写一个脚本来使用 scp 来在一个远程机器上备份你的主目录。这个脚本应该使用一个log文件来报告,比如 ~/log/homebackup.log。如果你没有第二台机器来拷贝备份,使用 scp 尝试拷贝到本机。这样将需要2台主机之间的 SSH 密钥,或者你需要提供一个密码。SSH 密钥的创建在 man ssh-keygen有详细说明。

    这个脚本应该使用 tar cf 来建立备份并且使用 gzip 或者 bzip2 来压缩 .tar 文件。把所有文件名放进变量当中。把远程主机和远程目录放进一个变量当中。这样将很方便地能对脚本进行重用或者将来对它做某些更改。

    这个脚本应该检查压缩档案的存在。如果实现存在,先对它进行移除来防止输出产生。

    这个脚本也应该可用的磁盘空间。记住任何特定时间你的主目录都可能含有数据,在 .tar 文件中的数据和压缩档案中的数据都在你的磁盘上。如果没有足够的磁盘空间,会退出并在log文件中产生一个错误消息。

    这个脚本应该在压缩文档存在时进行清理。