Linux 烹饪指南—法式连接
Allo,欢迎来到Chez Marcel,这里是精致法式 Linux 烹饪的故乡。
请就座。如果您还没有这样做,我希望您以略带夸张的法语口音阅读这篇文章,因为这就是我写作的方式。甚至 README 文件也带有浓重的口音。对于像我一样是法国人的你们,你们可以在阅读时进行翻译,从而为等待您的美味菜单增添另一层真实性。
很荣幸和荣幸地欢迎您来到我的厨房。今晚,我为您准备了一份特别的款待。我准备的食谱均采用常见的 Linux 发行版食材制成,以便您在返回自己的厨房 CPU 时可以重新制作这些美味佳肴。今晚的菜单
Windows 客户端的邮件通知
我的 IP 是什么?
diald 控制
服务员!再来点磁盘空间。
服务员!我的系统里有苍蝇。
已经到那个时候了吗?
我现在必须告诉您,我很高兴您决定加入我的厨房。我为您准备的大部分内容旨在借助 Linux 的一点帮助,使 Windows 9x 更加高效。如果您已经抛弃了 Windows PC,但您怀念某些被遗忘的软件(前提是该软件要求不高),您可以查看 http://www.winehq.com/ 以获取最新版本的适用于 Linux 的 Windows 非模拟器。
对于许多用户来说,Windows 工作站仍然在桌面上,而 Linux 机器则为 Windows 用户执行崇高的任务,例如连接到 Internet、提供防火墙服务、传递邮件、共享磁盘空间和打印机以及其他服务。
我们今天在这里为您准备的是 Linux 脚本,它们可以使您的 Windows 体验更加愉快。
在接下来的几个示例中,我们将让我们的 Linux 系统与 Windows 对话。虽然这是一个好主意,但我们必须首先设置 Windows 以进行监听;否则,我们所有的谈话都将消失在众所周知的以太中。当我们的 Linux 系统需要联系 Windows 用户时,它将使用 Samba 的 smbclient 消息传递功能来完成。显然,这需要运行 Samba 的系统。在 Windows 端,它需要 Winpopup。
要设置 Winpopup 在每次启动 Windows 时启动,请在 Windows 启动文件夹中创建一个快捷方式。单击“开始”按钮,然后单击“设置”,然后单击“任务栏”。选择标有“开始菜单程序”的选项卡,然后单击“高级”按钮。这将打开一个 Windows 资源管理器窗口。打开“程序”下的“启动”文件夹,并将 winpopup.exe 的快捷方式添加到其中。接受默认名称,您将得到一个可爱的小弹跳盒图标。右键单击它以访问属性选项卡。现在,将“运行:”选项设置为最小化。Winpopup 在后台启动,仅在收到消息时弹出。双击该图标立即启动它。
还有一件事:您现在应该看到 Winpopup 最小化在您的任务栏上。单击它以将其调出。现在单击“消息”,然后从下拉菜单中选择“选项”。单击“收到消息时弹出对话框”的框。单击“确定”并重新最小化 Winpopup。Windows 现在已准备好接收来自您的 Linux 系统的消息,这将我们带到菜单上的下一项。
这是我们从用户那里经常收到的问题。您是一家中小型办公室的管理员;您设置了一个 Internet 网关,该网关使用 fetchmail 定期接收邮件,然后将其存储在您的 Linux 服务器上。问题是您的用户仍在运行 Windows 和某种独立的 POP3 电子邮件软件包,例如 David Harris 的 Pegasus Mail。虽然许多软件包可以设置为自动检索邮件,但保持它们打开和运行会给他们已经负担过重的 Windows 系统带来负担。这意味着用户倾向于指出他们的系统运行速度有多慢。您建议他们关闭一些应用程序。“电子邮件怎么样?” 你建议。他们回答说:“如果我错过了重要的消息怎么办?” 解决方案是清单 1 中显示的 checkusermail 脚本。
在 /usr/local/etc 中,创建一个名为 mail_notify 的小文本文件,其中包含在您的系统上接收邮件的用户的姓名。如果 Windows 客户端的命名(在 Windows 控制面板的网络配置器中)与邮件的用户 ID 不同,请创建一个 /etc/lmhosts 文件,其中 IP 地址与您的邮件用户 ID 匹配,结果应该相同。该脚本可以从 cron 以适合您环境的时间间隔运行。由于它以 root 身份运行,因此它可以使用 frm 命令窥探每个人的邮箱。它会告诉每个用户他们有邮件以及有多少封邮件。如果没有邮件,则没有消息,也不需要浪费时间和精力每隔几分钟检查一次。
在您部署此脚本后,您会发现另一个快乐的人是老板,他一直在抱怨用户花在查看邮件上的时间过多,或者用户查看邮件不够频繁而错过了重要消息。
在最后一个示例中,我谈到了陷入困境的管理员(还有其他类型的管理员吗?)并建议这可能也是一个对他们有用的工具。如果您从远处管理该系统怎么办?更糟糕的是,这个 Internet 网关在预算内运行——它是与运行 diald 和 IP 伪装的 ISP 的简单拨号连接。当出现问题时,他们会打电话给您。问题意味着您使用 TELNET 登录、检查并远程修复问题。问题是,IP 是动态的,并且每次连接到 ISP 时都会更改。这次的解决方案是清单 2 中显示的 showppp.pl 脚本。该脚本很简单,并且位于 cgi-bin 中。根据您的 Web 服务器设置,您可能需要将此脚本重命名为 showppp.pl。
为您的用户设置一个简单的 Intranet 轻而易举。一个漂亮的 корпоративный 主页和一些流行的 Internet 链接比让每个用户都以 http://www.cnn.com/ 或 http://www.excite.com/ 作为他们的起始页启动浏览器更容易节省资源。如果您的拨号连接每月只给您固定的小时数,那么这些时间可能会很快被消耗掉。
为什么不使用同一个页面并为您的用户提供一个指向脚本的链接,该脚本将显示您的拨号 IP 连接的 IP 地址,而无需他们登录到您的 Linux 服务器?图 1 显示了这样一个页面。
偶尔,diald 进程可能会挂起。有时调制解调器挂起了,diald 似乎无法断开它。在任何一种情况下,使生活恢复正常的最佳方法是停止 diald 并重新启动该进程。由于您是远程操作,并且希望尽可能轻松地完成此操作,因此您可以自己完成工作,也可以指导您的远程用户之一完成该过程。如果他们只需键入一个命令,而不是执行 ps ax | grep diald,同时希望他们杀死正确的 PID 而不会使您的系统崩溃,那将会容易得多。清单 3 是一个执行此操作的小脚本。用户只需键入
diald.control restart
即可使事情再次运转。您还可以使用该脚本来停止 diald、启动它或关闭它并启动 mgetty 的单个实例,以便接收传真(但这将在以后讨论)。
您可以将此示例用作模板来创建任意数量的启动、停止或重新启动脚本。必要时,您可以让受信任的用户登录到您的服务器并运行像这样的简单管理脚本,而不会冒着损坏您的系统或同样不祥的杀死像 init 这样的重要进程的可能性。毕竟,kill --1 看起来非常类似于 kill 1,不是吗?
还记得那些很棒的小消息,用于让您的用户知道他们有邮件吗?如何使用相同的技术让您(管理员)知道某些重要的系统事件需要您注意?例如,假设您一直在与磁盘空间作斗争。如果系统让您知道资源不足,那不是很好吗?使用下一个小的 Perl 脚本(参见清单 4),您可以让您的 Linux 系统向您的 Windows 工作站发送弹出消息,警告您系统资源不足。此脚本扫描磁盘分区并向客户端 speedy 报告磁盘空间使用率超过 90%。(参见图 2。)

图 2. 磁盘空间使用情况屏幕
Windows winpopup 实用程序对于仍然运行 Windows 客户端但需要从其 Linux 服务器获取信息的用户来说是一个很棒的工具。此脚本和之前的邮件通知脚本突出了这种灵活性。
顺便说一句,菜单上的下一项,苍蝇——只是为了让您思考其他可能性。
在我的业务中,我设置了许多 Linux Internet 网关。为了使这些安装尽可能便宜,我们将机器设置为每半小时左右拨号以接收邮件。半小时标记也是我们在需要对机器进行一些管理工作时使用 TELNET 登录的提示。不幸的是,每台机器上的时间可能会有所不同。如何找到一种方法来对照一些可靠的来源检查时间并调整 Linux 服务器?
清单 5 中的脚本有点 Perl 魔力。它在辅助时间服务器上打开一个套接字,获取时间,然后关闭套接字。这是 NTP 的一个很好的替代方案,因为它不会占用 NTP 时间服务器的资源。出于这个原因,NTP 规则要求您在不需要时不要使用主服务器。“公共 NTP 时间服务器”页面的链接在“资源”中提供。
请注意清单 5 中说 remote_host="chime.utoronto.ca"; 的行。此处指定的主机是 chime.utoronto.ca,但它可以是提供主时间或辅助时间服务的任何数量的机器之一。但是,请考虑这些规则,并访问 NTP 时间服务器页面以查找您所在地区和时区的系统。
好吧,关于时间的最后一个脚本是我让大家离开餐厅的方式。我希望您再次光临 Chez Marcel。我们希望我们已经成功地激发了您对使用 Linux 系统可以做的美妙而有趣的事情的兴趣。Bon Appétit!

Marcel Gagné (mggagne@salmar.com) 居住在神话般的安大略省密西沙加市。除了是太空外星人、冒险家、飞行员、魔术师和国际神秘人物外,他还是 Salmar Consulting Inc. 的总裁,这是一家系统集成和网络咨询公司。他还撰写科幻小说和奇幻小说,并编辑科幻、奇幻和恐怖杂志 TransVersions。