最佳技术支持

作者:Various
crontab 故障排除

我在使用 crontab 文件时遇到问题。这是我第一次尝试使用它,但一直无法使其正常工作。守护进程 crond 正在运行。在我的 crontab 文件中,我有以下行

30 6 * * * /home/Talon/automail

automail 是一个 shell 脚本,用于登录我的互联网提供商,获取邮件并注销。据我所知,crond 从未执行此命令。—Jeff Largent

使程序可执行

您确定您的 automail 程序是可执行的吗?如果不是,请键入

chmod +x /home/Talon/automail

—Pierre Ficheux, Lectra Systèmès pierre@rd.lectra.fr

/dev/fd0 错误消息

当我尝试挂载 /dev/fd0 时,出现以下错误消息

/dev/fd0 is not a block device

这意味着什么?我该如何修复?我可以 fdformat 软盘,但无法在其上挂载或创建文件系统。—Scott Petinga

识别块设备

检查 /dev/fd0 的类型—它应该是一个块设备。如果它被正确识别,则此设备在目录列表中的前导字符将是 b。例如

$ ls -l /dev/fd0
brwxrwxrwx   1 root    floppy     2,    0 Jul 18  1994 /dev/fd0

如果 b 不存在,请通过键入以下内容重新创建设备

rm /dev/fd0
mknod /dev/fd0 b 2 0
—Pierre Ficheux, Lectra Systèmès pierre@rd.lectra.fr
神秘的僵尸进程

每次我启动 X 程序 netcfg 时,它都会生成一个僵尸进程。我一直无法摆脱它。我宿舍里也没人能弄明白。—Scott

netcfg 中的错误修复

netcfg 是 Red Hat 创建的一个 python 脚本,旨在简化网络参数的配置。自 4.1 版本发布以来,此脚本已得到扩展并修复了许多错误。

我建议您升级到最新的 netcfg-rpm(截至撰写本文时为 netcfg-2.15-1.i386.rpm)。—Mario de Mello Bittencourt Neto, Argo Internet mneto@buriti.com.br

限制目录大小

如何限制目录的大小?我想将每个客户的目录限制为 1MB。如果客户尝试通过 ftp 上传 2MB 的内容,我希望 Linux 拒绝存储超过 1MB 的尝试。我该如何完成这项磁盘管理壮举?—M. Lamberson

安装配额支持

这很容易。安装 quota 支持,这将允许您控制用户主目录的最大大小。假设您已将 FTP 配置为将非匿名 FTP 登录重定向到实际的主目录,那么只需在您的内核中配置 quota 支持即可。只需转到 /usr/src/linux 并键入

make menuconfig

Filesystems 条目下,检查 quota 支持。重新编译内核,重新启动,您就可以根据需要配置 quota。—Mario de Mello Bittencourt Neto, Argo Internet mneto@buriti.com.br

init 运行级别

init 命令列出的不同运行级别有什么作用?我查阅了各种 Unix 书籍以及 Linux 配置和安装,但找不到任何信息。—Paul Sutton

不同的操作级别

Unix 运行级别是系统配置的一种状态。每个级别都表示一定的操作级别。运行级别由 init 守护进程控制(并与之相关),init 守护进程是任何 Unix 系统首次加载时执行的第一个进程。

init 的工作是启动和停止进程,运行级别有助于确定要控制哪些进程。文件 /etc/inittab 包含 init 用于决定启动哪些进程以及如何启动它们的条目。一个条目看起来像这样

NM:LEVs:WHEN_AND_HOW:COMMAND

NM 是命令的两个字母的标识符—每个命令都必须有其自己的唯一标识符。LEVs 是运行命令的级别列表。它通常是 0-5 之间的一个数字或一组数字,但也可能是一个 S 甚至为空,具体取决于您的 init 版本。WHEN_AND_HOW 是一个选项,用于指定何时应运行命令,init 是否应等待其完成,是否应在命令终止时重新启动等等。COMMAND 是要执行的命令的完整路径和文件名。

运行级别对应于 LEVs 列表。例如,以下行在我的 inittab 文件中

# Start the local dial-in services
s0:45:respawn:/usr/local/sbin/mgetty ttyS0 \
        vt100 -D -x 0
s1:45:respawn:/usr/local/sbin/mgetty ttyS2 \
        vt100 -D -x 0

我定义了两个进程 s0s1,它们将在系统处于运行级别 4 或 5 时执行。respawn 选项告诉 init 在命令终止时重新执行该命令。(这允许我的拨入线路在用户挂断电话时接受新的呼叫者。)最后,您可以看到为每个条目运行的命令。

通过使用运行级别,系统管理员可以将系统配置为在系统进入不同的运行级别时自动启动和停止某些进程。此功能最常见的用途是拥有一个正常的、多用户级别和一个单用户管理级别。通过触发此级别,他们可以让服务器自动终止用户进程并禁用网络支持,以便管理他们的系统。

您可以从 INIT(8)INITTAB(5) 手册页中获取有关 Unix 运行级别的更多信息。由于存在许多不同的 Unix 版本,因此也存在许多不同版本的 init。因此,您应该查看您的手册页以获取确切的详细信息。—Chad Robinson, BRT Technical Services Corporation chadr@brttech.com

理解 Core Dump

如何读取 core dump 文件?有时,机器会崩溃并输出 core dump 文件。当我尝试读取它们(使用 more 命令)时,它们充满了无意义的字符。除了用于调试导致 dump 的程序的调试器之外,我还没有找到任何关于如何读取这些文件的信息—我永远不知道哪个程序导致了 core dump。对于确定发生了什么事,有什么其他的想法吗?—G. Hendricks

使用 gcc 和 gdb

Core dump 文件是已终止进程的进程状态。当进程因各种信号之一(例如 SIGSEGV,段违例,通常指示程序中与内存相关的错误)而终止,并且进程所有者的 ulimit(请参阅您的 shell 手册页)允许 core 文件时,将创建 core dump。它包含诸如分配给程序的整个内存集、程序终止时的位置以及它正在执行的操作等信息。

Core dump 对于 Unix 程序员来说是一个非常宝贵的工具。通过将其与调试器结合使用,程序员可以查看其程序出了什么问题。

要检查这些文件之一,您通常需要两件事。首先,必须使用 gcc 编译和链接程序,并设置 -g 开关,这指示编译器将调试信息放在可执行文件中。尽管任何程序都可以生成 core 文件,但只有当此调试信息可用时,core 文件才能告诉程序员程序中发生故障的位置以及某些变量的值。

所需的第二个工具是调试器。如果您已安装开发工具包,则很可能您已经拥有它。标准的 Linux 调试器是 gdb(GNU 调试器),它是 gcc 开发工具包的一部分。然后,程序员可以使用此命令来查看 core 文件

gdb programname core

Core 文件通常仅对程序员有用,而调试器不是一个非常友好的程序(gdb 当然也不例外)。如果您没有编程经验,那么通过这种方式检查 core 文件可能不会增加您对出错原因的了解。—Chad Robinson, BRT Technical Services Corporation chadr@brttech.com

无法接收邮件

我已经加载了 Linux 并拥有完整 Internet 连接的所有设置。我可以 telnet 到我的计算机和从我的计算机 telnet,并且可以发送邮件。我一直无法配置系统以接收邮件。有什么建议吗?—Jay Melton

将 Sendmail 添加到启动脚本

很可能您只是没有将 sendmail 作为守护进程运行。您可以使用如下命令将 sendmail 作为守护进程启动

sendmail -bd -q15m

如果这没有导致任何奇怪的错误,您将需要将该命令添加到您的启动脚本中。检查以确保 /etc/rc.d/init.d/sendmail.init 存在。如果存在,请使用运行级别编辑器使其在运行级别 2、3 和 5 中启动,并在运行级别 0、1 和 6 中停止。—Steven Pritchard, President Southern Illinois Linux Users Group steve@silug.org

镜像站点

使用什么软件包以及如何镜像您最喜欢的软件站点?—Andreas J. Bathe

Perl 脚本 Mirror

有一个名为 mirror 的 Perl 脚本非常适合镜像 ftp 站点。它可以从 ftp://sunsite.doc.ic.ac.uk/packages/mirror/ 获取,并附带出色的文档。—Steven Pritchard, President Southern Illinois Linux Users Group steve@silug.org

加载 Disqus 评论