2014年12月

提问: 我有一台运行在VirtualBox上的使用NAT的虚拟机,因此虚拟机会被VirtualBox分配一个私有IP地址(10.x.x.x)。如果我想要从主机SSH到虚拟机中,我该怎么做?

VirtualBox对虚拟机支持几种不同的网络方式,其中一种是NAT网络。当虚拟机启用NAT后,VirtualBox会自动在虚拟机和主机之间进行网络翻译,因此你不必在虚拟机和主机之间配置任何东西。这也意味着NAT中的虚拟机对于外部网络以及主机本身是不可见的。这会在你想要从主机访问虚拟机时会产生问题(比如SSH)。

如果你想从VirtualBox的NAT环境的虚拟机,你可以在GUI或者命令行下启用VirtualBox NAT的端口转发。本篇教程将会演示如何通过启用22端口转发而从主机SSH连接到NAT环境的客户机。如果你先想要从HTTP访问NAT的客户机,用80端口代替22端口即可。

通过GUI配置VirtualBox端口转发

在VirtualBox中选择你想要访问的虚拟机,打开虚拟机的“设置”。点击左侧的“网络”菜单,点击网络适配选项的“高级”。

点击“端口转发”按钮

你会看到一个配置端口转发规则的窗口。点击右上角的“添加”图标。

就会看到像下面那样的转发规则。

  • Name: SSH (可以是任意唯一名)
  • Protocol: TCP
  • Host IP: 127.0.0.1
  • Host Port: 2222 (任何大于1024未使用的端口)
  • Guest IP: 虚拟机IP
  • Guest Port: 22 (SSH 端口)

端口转发的规则会自动在你启动虚拟机的时候启用。为了验证。可以在你启用虚拟机后检查端口2222是否被VirtualBox开启了。

$ sudo netstat -nap | grep 2222 

现在端口转发可以使用了,你可以用下面的命令SSH到虚拟机。

 $ ssh -p 2222 <login>@127.0.0.1 

发送到127.0.0.1:2222的登录请求会自动被VirtualBox翻译成10.0.2.15:22,这可以让你SSH到虚拟机中。

通过命令行配置VirtualBox端口转发

VirtualBox有一个称为VBoxManage的命令行管理工具。使用命令行工具,你也可以为你的虚拟机设置端口转发。

下面的命令会为IP地址为10.0.2.15的虚拟机设置一个名字为"centos7"的端口转发规则,SSH的端口号为22,映射到本地主机的端口为2222。规则的名字(本例中是SSH)必须是唯一的。

$ VBoxManage modifyvm "centos7" --natpf1 "SSH,tcp,127.0.0.1,2222,10.0.2.15,22" 

规则创建之后,你可以用下面的命令来验证。

 $ VBoxManage showvminfo "centos7" | grep NIC 


via: http://ask.xmodulo.com/access-nat-guest-from-host-virtualbox.html

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

qshutdown是一个QT程序,用于让计算机在指定时间或者在几分钟后关机/重启/挂起/睡眠。对于那些只在特定时间使用计算机工作的人而言,可能很有用。

qshutdown将在最后70秒时显示3次警告提醒。(如果设置了1分钟或者“本地时间+1”,它只会显示一次。)

该程序使用qdbus来发送关机/重启/挂起/睡眠请求到gnome或kde会话管理器,或者到HAL或DeviceKit,而如果这些都没有工作,那么就会使用‘sudo shutdown -P now’命令进行关机(注意,当发送请求到HAL或DeviceKit,或者使用shutdown命令时,会话不会被保存。如果使用shutdown命令,该程序只会被关机或重启)。所以,如果在shutdown或reboot时间到时却什么都没发生,这就意味着用户缺少使用shutdown命令的权限。

在这种情况下,你可以进行以下操作:

粘贴以下信息到终端:“EDITOR:nano sudo -E visudo”并添加此行:“* ALL = NOPASSWD:/sbin/shutdown”这里*替换为你的“用户名”或“%组名”。

倒计时最大计数为1440分钟(24小时)。配置文件(和日志文件)位于~/.qshutdown,配置文件为:qshutdown.conf。

对于管理员:

在将qshutdonw.conf中的Lock\_all选项设置为true后,用户将不能修改设置。如果你使用“sudo chown root -R ~/.qshutdown”和“sudo chmod 744 ~/.qshutdown/qshutdown.conf”命令修改qshutdown.conf的权限后,用户将不能修改配置文件。

Ubuntu中安装Qshutdown

打开终端,然后运行以下命令

sudo apt-get install qshutdown

屏幕截图


via: http://www.ubuntugeek.com/qshutdown-an-avanced-shutdown-tool.html

作者:ruchi 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

UbuTricks是一个可以帮助你在ubuntu上安装几个最新版本的游戏和应用的程序。

UbuTricks是一个有简单界面,基于Zenity的图形脚本。虽然早期开发中,它的目标是通过简单的界面操作来安装Ubuntu14.04 及以后发行版上应用程序的更新。

应用程序会自动下载安装。一些更新可能会需要ppa,其它的将会通过编译源代码安装。编译过程可能会需要一些时间,当从ppa或者deb文件安装应该会快一点,取决于你的下载速度。

一共有以下几种安装方式:

  • PPA - 程序将会从PPA下载安装
  • DEB - 程序将会从DEB文件进行安装
  • Source - 程序会进行编译安装 (可能需要一点时间)
  • Script - 程序会通过开发者提供的脚本进行安装
  • Archive - 程序会通过压缩文件安装
  • Repository - 程序从仓库安装 (不是PPA)

你可以安装的应用程序列表

通过UbuTricks可以安装下面应用的最新版本:

游戏

  • 0 A.D.
  • Battle for Wesnoth (Dev)
  • VCMI (Heroes III Engine)

文件管理

  • PCManFM

互联网应用

  • Geary
  • HexChat
  • QupZilla
  • QuiteRSS

多媒体

  • SMPlayer
  • Transmageddon
  • Kdenlive
  • Fotoxx
  • jAlbum
  • GIMP
  • Shutter
  • Qmmp
  • XBMC

办公/电子书/文档

  • Calibre
  • LibreOffice

工具

  • Ubuntu Tweak

桌面环境

  • Cinnamon

其他

  • Google Earth
  • Wine

下载,安装Ubuntutricks

你可以从这里下载ubuntutricks,让它可执行然后双击脚本或者从终端里运行它。

截图


via: http://www.ubuntugeek.com/ubutricks-script-to-install-the-latest-versions-of-several-games-and-applications-in-ubuntu.html

作者:ruchi 译者:DoubleShit 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

不能在Linux或者类UNIX系统的硬盘上写入数据?想解决服务器上磁盘损坏的问题吗?想知道你为什么总是在屏幕上看到“磁盘已满”的字眼吗?想学习处理这些问题的办法吗?试试一下这8个解决Linux及UNIX服务器硬盘问题的小贴士吧。

1 - 错误: 设备上无剩余空间

当你的类UNIX系统磁盘写满了时你会在屏幕上看到这样的信息。本例中,我运行fallocate命令然后我的系统就会提示磁盘空间已经耗尽:

$ fallocate -l 1G test4.img
fallocate: test4.img: fallocate failed: No space left on device

第一步是运行df命令来查看一个有分区的文件系统的总磁盘空间和可用空间的信息:

$ df

或者试试可读性比较强的输出格式:

$ df -h

部分输出内容:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       117G   54G   57G  49% /
udev            993M  4.0K  993M   1% /dev
tmpfs           201M  264K  200M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none           1002M     0 1002M   0% /run/shm
/dev/sda1       1.8G  115M  1.6G   7% /boot
/dev/sda7       4.7G  145M  4.4G   4% /tmp
/dev/sda9       9.4G  628M  8.3G   7% /var
/dev/sda8        94G  579M   89G   1% /ftpusers
/dev/sda10      4.0G  4.0G     0 100% /ftpusers/tmp

使用df命令输出可以清楚地发现,在 /dev/sda10 分区下总共4.0Gb的空间被全部写满了。

修复磁盘写满的问题

1.用gzip,bzip2或tar命令压缩未压缩的日志和其它文件

gzip /ftpusers/tmp/*.log
bzip2 /ftpusers/tmp/large.file.name

2.在类UNIX系统中用rm命令删除不想要的文件

rm -rf /ftpusers/tmp/*.bmp

3.用rsync命令移动文件至其它系统或外置硬盘:

rsync --remove-source-files -azv /ftpusers/tmp/*.mov /mnt/usbdisk/
rsync --remove-source-files -azv /ftpusers/tmp/*.mov server2:/path/to/dest/dir/

4.在类UNIX系统中找出最占磁盘空间的目录或文件

du -a /ftpusers/tmp | sort -n -r | head -n 10
du -cks * | sort -rn | head

5.清空指定文件。这招对日志文件很有效:

truncate -s 0 /ftpusers/ftp.upload.log
### bash/sh等 ##
>/ftpusers/ftp.upload.log
## perl ##
perl -e'truncate "filename", LENGTH'

6.在Linux和UNIX中找出并删除显示着但已经被删除的大文件:

## 基于Linux/Unix/OSX/BSD等系统 ##
lsof -nP | grep '(deleted)'

## 只基于Linux ##
find /proc/*/fd -ls | grep  '(deleted)'

清空它:

 ## 基于Linux/Unix/OSX/BSD等所有系统 ##
> "/path/to/the/deleted/file.name"
## 只基于Linux ##
> "/proc/PID-HERE/fd/FD-HERE"

2 - 文件系统是只读模式吗?

当你尝试新建或保存一个文件时,你可能最终得到诸如以下的错误:

$ cat > file
-bash: file: Read-only file system

运行mount命令来查看被挂载的文件系统是否处于只读状态:

$ mount
$ mount | grep '/ftpusers'

在基于Linux的系统中要修复这个问题,只需将这个处于只读状态的文件系统重新挂载即可:

# mount -o remount,rw /ftpusers/tmp

(LCTT 译注:如果硬盘由于硬件故障而 fallback 到只读模式,建议不要强制变回读写模式,而是赶快替换硬盘)

另外,我是这样用rw模式重新挂载FreeBSD 9.x服务器的根目录的:

# mount -o rw /dev/ad0s1a /

3 - Am I running out of inodes?

有时候,df命令能显示出磁盘有空余的空间但是系统却声称文件系统已经写满了。此时你需要用以下命令来检查能在文件系统中识别文件及其属性的索引节点

$ df -i
$ df -i /ftpusers/

部分输出内容:

Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda8      6250496 11568 6238928    1% /ftpusers

如上 /ftpusers 下有总计62,50,496KB大小的索引节点但是只有11,568KB被使用。你可以在 /ftpusers 位置下另外创建62,38,928KB大小的文件。如果你的索引节点100%被使用了,试试看以下的选项:

  • 找出不想要的文件并删除它,或者把它移动到其它服务器上。
  • 找出不想要的大文件并删除它,或者把它移动到其它服务器上。

(LCTT 译注:如果一个分区存储了太多的小文件,会出现 inode 用完而存储扇区还有空闲的情况,这种情况下要么清除小文件或在不需要独立访问的情况下将它们打包成一个大文件;要么将数据保存好之后重新分区,并设置分区的 -t news 属性,增加 inode 分配)

4 - 我的硬盘驱动器宕了吗?

日志文件中的输入/输出错误(例如 /var/log/messages)说明硬盘出了一些问题并且可能已经失效,你可以用smartctl命令来查看硬盘的错误,这是一个在类UNIX系统下控制和监控硬盘状态的一个命令。语法如下:

smartctl -a /dev/DEVICE
# 在Linux服务器下检查 /dev/sda 
smartctl -a /dev/sda

你也可以用"Disk Utility"这个软件来获得同样的信息。

图 01: Gnome磁盘工具(Applications > System Tools > Disk Utility)

注意: 不要对S.M.A.R.T.工具期望太高,它在某些状况下无法工作,我们要定期做备份。

5 - 我的硬盘驱动器和服务器是不是太热了?

高温会引起服务器低效,所以你需要把服务器和磁盘维持在一个平稳适当的温度,高温甚至能导致服务器宕机或损坏文件系统和磁盘。用hddtemp或smartctl功能,通过从支持S.M.A.R.T.功能的硬盘上读取数据的方式,从而查出你的Linux或基于UNIX系统上的硬盘温度。只有现代硬驱动器有温度传感器。hddtemp功能也支持从SCSI驱动器读取S.M.A.R.T.信息。hddtemp能作为一个简单的命令行工具或守护程序来从所有服务器中获取信息:

hddtemp /dev/DISK
hddtemp /dev/sg0

部分输出内容如下:

图 02: hddtemp正在运行

你也可以像下面显示的那样使用smartctl命令:

smartctl -d ata -A /dev/sda | grep -i temperature

我怎么获取CPU的温度

你可以使用Linux硬件监控工具,例如像用基于Linux系统的lm\_sensor功能来获取CPU温度

sensors

Debian服务器的部分输出内容:

图 03: sensors命令提供了一台Linux计算机的CPU核心温度和其它信息

6 - 处理损坏的文件系统

服务器上的文件系统可能会因为硬件重启或一些其它的错误比如坏的扇区而损坏。你可以用fsck命令来修复损坏的文件系统

umount /ftpusers
fsck -y /dev/sda8

来看看怎么应对Linux文件系统故障的更多信息。

7 - 处理Linux中的软阵列

输入以下命令来查看Linux软阵列的最近状态:

 ## 获得 /dev/md0 上磁盘阵列的具体内容 ##
mdadm --detail /dev/md0

## 查看状态 ##
cat /proc/mdstat
watch cat /proc/mdstat

部分输出内容:

图 04: 查看Linux软阵列状态命令

你需要把有故障的硬件驱动器更换掉,别删错了。本例中,我更换了 /dev/sdb (RAID 6中的第二个硬件驱动器)。没必要依靠离线存储文件来修复Linux上的磁盘阵列,因为这只在你的服务器支持热插拔硬盘的情况下才能工作:

## 从一个md0阵列中删除磁盘 ##
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md0 --remove /dev/sdb1

# 对 /dev/sdbX 的剩余部分做相同操作 ##
# 如果不是热插拔硬盘就执行关机操作 ##
shutdown -h now

## 从 /dev/sda 复制分区表至新的 /dev/sdb 下 ##
sfdisk -d /dev/sda | sfdisk /dev/sdb
fdisk -l

## 添加 ##
mdadm --manage /dev/md0 --add /dev/sdb1
# 对 /dev/sdbX 的剩余部分做相同操作 ##

# 现在md0会再次同步,通过显示屏查看 ## 
watch cat /proc/mdstat

来看看加快Linux磁盘阵列同步速度的小贴士来获取更多信息。

8 - 处理硬阵列

你可以用samrtctl命令或者供应商特定的命令来查看磁盘阵列和你所管理的磁盘的状态:

## SCSI磁盘 
smartctl -d scsi --all /dev/sgX

## Adaptec磁盘阵列
/usr/StorMan/arcconf getconfig 1

## 3ware磁盘阵列
tw_cli /c0 show

对照供应商特定文档来更换你的故障磁盘。

监控磁盘的健康状况

来看看我们先前的教程:

  1. Monitoring hard disk health with smartd under Linux or UNIX operating systems
  2. Shell script to watch the disk space
  3. UNIX get an alert when disk is full
  4. Monitor UNIX / Linux server disk space with a shell scrip
  5. Perl script to monitor disk space and send an email
  6. NAS backup server disk monitoring shell script

结论

我希望以上这些小贴士会帮助你改善在基于Linux/Unix服务器上的系统磁盘问题。我还建议执行一个好的备份计划从而有能力从磁盘故障、意外的文件删除操作、文件损坏和服务器完全被破坏等意外情况中恢复:


via: http://www.cyberciti.biz/datacenter/linux-unix-bsd-osx-cannot-write-to-hard-disk/

作者:nixCraft 译者:ZTinoZ 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

系统管理员(sysadmins)负责日常维护生产系统和服务。其中一个关键任务就是保证功能性服务能24小时工作。为了这个,他们得很小心地计划备份方式,灾难管理策略,定时维护,安全审查,等等。和任意其他管理一样,系统管理员也有他们的必备工具。在正确的时间正确的情况下使用合适的工具,可以帮助维护操作系统的健壮,达到最小的服务中断时间和最大的运行时间。

这篇文章会介绍一些系统管理员日常活动中最常用和有效的命令行工具。如果你想推荐其他没在这里列出来的好用的工具,别忘了在评论区里分享一下。

网络工具

  1. ping:通过ICMP回应/回复报文来检查远端主机的端到端连接性(RTT延时,抖动,丢包)。用来检查系统状态和可连接性很不错。
  2. hping:网络扫描和检测工具,可以产生ICMP/TCP/UDP ping数据包。常常用于高级端口扫描,防火墙测试,手动MTU路径发现和碎片测试。
  3. traceroute:通过TTL限定的ICMP/UDP/TCP侦测包来发现从本地主机到远端目标主机之间的第三层转发路径。用来调试网络连接性和路由问题。
  4. mtr:traceroute的一个变种,能根据运行时统计数据整理出每一跳的包丢失/抖动。用来评估路由路径延时很不错。
  5. netcat/socat:TCP/IP网络里的瑞士军刀,可以读/写 TCP/UDP 协议字节流。用来调试防火墙策略和服务可用性很不错。
  6. dig:DNS调试工具,可以生成正向查询,反向查询,搜索域名服务器,检查CNAME,MX和其他DNS记录。可以在侦错的时候查询特定的DNS服务器。
  7. nslookup:另外一个DNS检查/调试工具。支持所有DNS查询和记录。可以查询特定DNS服务器。
  8. dnsyo:一个DNS测试工具,通过对全世界1500个不同网络中的大量开放解析器执行DNS查询来测试DNS传输。
  9. lsof:显示进程打开的文件信息(例如,普通文件,管道或套接字)。用来监视网络连接很不错。
  10. iftop:一个基于ncurses的命令行界面应用,可以实时监视各个网络物理接口上的网络连接和带宽占用。用来记录霸占带宽的应用、用户、目的地和端口等很不错。
  11. netstat:一个网络统计工具,可以显示状态以及统计信息,当前网络连接(TCP/UDP端口,IP地址)、路由表、TX/RX traffic以及网络协议。用来做网络相关诊断和性能调试很不错。
  12. tcpdump:一个常用的基于libpcap抓包库的包侦测工具。可以按伯克利包过滤器格式定义抓包条件。
  13. tshark:另一个命令行抓包工具,和它的GUI版本Wireshark完全兼容。支持1000种协议而且这个列表还在增加。用来调试、分析和保存实时网络封包信息很不错。
  14. ip:一个多功能的命令行网络工具,是iproute2包的一部分。可以检查和修改路由表、网络设备状态以及IP隧道设置。用来查看路由表、增加/删除静态路由、配置网络接口、以及调试路由问题很有用。
  15. ifup/ifdown:用来激活和关闭特定的网络接口。经常用于重启整个网络服务。
  16. autossh:一个能建立SSH连接并在断线后自动重新连接的程序。用来创建长时间保持的穿越严格企业网络的SSH隧道很有用。
  17. iperf:一个网络测试工具,通过在发送自定义TCP/UDP数据流来衡量主机间双向最大吞吐量。
  18. elinks/lynx:为基于命令行的服务器环境下使用的基于文字的网页浏览器。

安全工具

  1. iptables:一个用户空间下的命令行工具,用于配置Linux内核防火墙。可以创建和修改Linux内核空间的网络包接收、转发和发送规则。
  2. nmap:一个常用的为了安全审查目的的端口扫描和网络发现工具。用来在本地网络中找出哪些主机开机并运行起来了以及某台特定主机打开了哪些端口很有用。
  3. TCP Wrappers:一个主机端的网络访问控制列表工具,可以过滤进入/出去的网络请求/回复。经常配合iptables一起使用,作为额外一层安全保护。
  4. getfacl/setfacl:查看和定制文件和目录的访问控制列表,作为传统文件权限的扩展。
  5. cryptsetup:用于创建和管理LUKS加密磁盘分区。
  6. lynis:一个命令行的漏洞扫描工具。可以扫描整个Linux系统,并汇报潜在的漏洞以及相关可能解决方案。
  7. maldet:一个恶意软件扫描命令行工具,可以检测和隔离潜在的感染文件。可以在后台运行长期监视。
  8. rkhunter/chkrootkit:一个命令行工具,可以扫描本地系统里的潜在木马、隐藏后门和可疑利用,并禁用它们。

存储工具

  1. fdisk:一个磁盘分区编辑工具。用于查看、创建和修改本地磁盘或可移动磁盘的分区。
  2. sfdisk:fdisk的一个变种,能用一种非交互的方式访问或更新磁盘分区表。用来自动化备份和恢复过程中的磁盘分区很有用。
  3. parted:另一个磁盘分区编辑器,支持超过2TB的磁盘的GPT(GUID分区表)格式。gparted是parted的一个前端GTK+图形界面。
  4. df:用来查看不同分区或文件路径的已用/可用存储空间和挂载点。还有一个更易用的变种dfc。
  5. du:用来查看不同文件和目录的当前磁盘占用情况(例如,du -sh *)。
  6. mkfs:一个磁盘格式化命令,用来在独立磁盘分区上建立文件系统。有多个文件系统相关的版本:ext2、ext3、ext4、bfs、ntfs、vfat/fat。
  7. fsck:一个命令行工具,用来检查文件系统错误并尝试可能的修复。通常在启动时自动运行,但是在卸载一个分区后也可以根据需要手动运行。
  8. mount:用来映射一个物理磁盘分区、网络共享或远程存储到一个本地挂载点。任何对挂载点里的读/写操作都是对应实际存储的实际数据读/写。
  9. mdadm:一个命令行工具,用来管理物理块设备上的软件RAID设备。可以创建、构造、增长或监视RAID阵列。
  10. lvm:一套命令行工具集,用来管理卷分组和物理/逻辑卷,可以用最小的停机时间在多个物理磁盘上创建、调整大小、拆分和合并卷。

日志访问工具

  1. tail:用来查看一个(增长中的)日志文件的尾部。有几个变种,包括multitail(多窗口查看)和ztail(支持inotify和正则表达式过滤以及颜色)。
  2. logrotate:一个命令行工具,可以在根据设定的时间段拆分、压缩并通过邮件发送旧的/大的日志文件。用来管理可能产生大量日志文件的繁忙主机很有用。
  3. grep/egrep:可以通过特定的模式或正则表达式过滤日志内容。变种包括用户更友好的ack和速度更快的ag。
  4. awk:一个多功能的文本扫描和处理工具。常用于从文本/日志文件中找出特定的列或内容,并输出给其他工具。
  5. sed:一个文本流编辑工具,可以过滤和改变(例如,删除行/空格、替换/转换单词、增加计数)文本流并通过管道连接到stdout/stderr或者其他工具。

备份工具

  1. rsync:一个快速的单向增量备份和镜像工具(LCTT 译注:rsync 应是双向的)。常用于复制一个数据仓库到线下存储,可以选择通过SSH或stunnel的加密连接。
  2. rdiff-backup:另一个有效利用带宽的增量备份工具。管理两个连续快照之间的差分。
  3. duplicity:一个加密的增量备份工具。使用GnuPG加密备份,并通过SSH上传到远程服务器。

性能监视工具

  1. top:一个命令行的进程查看程序。可以监视系统负载、进程状态、CPU和内存占用。有一个更易用的变种htop。
  2. ps:显示系统所有运行中进程的一个快照。输出可以定制成显示PID、PPID、用户、负载、内存、积累的用户/系统时间、启动时间、以及更多。有一个变种pstree可以用树结构显示进程。
  3. nethogs:一个带宽监视工具,按进程来分组显示活动网络连接,实时汇报每个进程占用的(上传/下载)带宽。
  4. ngxtop:一个网页服务器访问日志解析和监视工具,界面受到了top命令启发。它可以实时汇报整理过的页面请求列表,包括频率、大小、HTTP返回值、IP地址,等等。
  5. vmstat:一个简单的命令行工具,可以显示多个实时系统特征,例如进程数、剩余内存、分页状态、CPU占用、块设备I/O活动、中断/上下文切换统计、等等。
  6. iotop:一个基于ncurses的I/O监视工具,可以实时排序显示所有运行中进程的磁盘I/O活动。
  7. iostat:一个命令行工具,可以汇报当前CPU使用情况,以及设备I/O使用情况,这里的I/O使用情况(例如,块传输速度、字节读/写速度)是按设备或分区来汇报的。

效率工具

  1. screen:用来把一个单一的终端拆分成多个持久的虚拟终端,也支持远程用户访问,类似teamviewer的屏幕分享功能。
  2. tmux:另一个终端复用工具,可以支持多个长期会话,还可以横向/纵向拆分终端。
  3. cheat:一个简单的命令行工具,可以让你查看多个常用Linux命令的备忘录,就在手边非常方便。内建的备忘录也可以完全定制。
  4. apropos:用来在帮助手册里查找描述或关键字很有用。

包管理工具

  1. apt:基于Debian系统的事实上的包管理工具,例如Debian、Ubuntu或Backtrack。一个救生圈。
  2. apt-fast:apt-get的一个支撑应用,可以通过多个并行连接明显提高apt-get的下载速度。
  3. apt-file:用来查看某个特定文件属于哪个.deb包,或者显示一个特定.deb包里的所有文件。已安装和未安装的包都能支持。
  4. dpkg:一个用来手动安装.deb包的命令行工具。强烈建议尽可能的使用apt。
  5. yum:用于基于红帽的系统的自动包管理工具,比如RHEL、CentOS或Fedora。这是另一个救生圈!
  6. rpm:通常我都是使用 rpm 来配合 yum 使用。有很多有用的参数,比如-q、-f、-l可以分别用来查询、指定文件和路径。

硬件工具

  1. lspci:一个命令行工具,可以显示已安装的PCI设备的各种信息,比如型号名称、设备驱动、设备功能、内存地址、PCI总线地址。
  2. lshw:一个命令行工具,可以查询和显示不同分类下的硬件配置的详细信息(例如,处理器、内存、主板、网络、存储)。支持多重输出格式:html、xml、json、text。
  3. inxi:一个综合硬件查看工具,可以提供不同硬件模块的总览,例如CPU,显卡,声卡,网卡,温度/风扇传感器,等等。

如果你希望推荐没有列在这里的好用的工具,不要客气,在评论区里分享一下。


via: http://xmodulo.com/2014/08/useful-cli-tools-linux-system-admins.html

作者:Sarmed Rahman 译者:zpl1025 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

问题1:什么是 Postfix,它的默认端口是多少?

答:Postfix 是一个开源的 MTA(邮件传送代理,英文名:Mail Transfer Agent),用于转发 email。相信很多人知道 Sendmail,而 Postfix 是它的替代品。默认端口是25。

问题2:Postfix 和 Sendmail 有什么区别?

答:Postfix 使用模块化设计,由多个独立的可执行程序组成;而 Sendmail 被设计成有一个强大的后台进程提供所有服务。

问题3:什么是 MTA,它在邮件系统中扮演什么角色?

答:MTA 是 Mail Transfer Agent (邮件传输代理)的缩写。MTA 负责接收和发送邮件、确定发送路径和地址重写(LCTT译注:address rewriting,就是完善发送地址,比如将“username”这个地址重写为“[email protected]”)。本地转发就是将邮件发送给 MDA。Qmail、Postix、Sendmail 都是 MTA。

问题4:什么是 MDA?

答:MDA 是 Mail Delivery Agent (邮件投递代理)的缩写。MDA 这个程序用于从 MTA 获取邮件并投递至本地收件人的邮箱。MDA 通常可以过滤邮件或为邮件分类。一个 MDA 也能决定一封邮件是否需要转发到另一个邮箱地址。Procmail 就是一个 MDA。

问题5:什么是 MUA?

答:MUA 是 Mail User Agent (邮件用户代理)的缩写。MUA 是一个邮件客户端软件,可以用来写邮件、发送邮件、接收邮件。发送邮件时使用的是 MTA;接收邮件时可以从邮件存储区直接收取,也可以通过 POP/IMAP 服务器间接收取。Outlook、Thunkerbird、Evolution 都是 MUA。

问题6:邮件服务器里 postmaster 的作用是什么?

答:邮件管理者一般就是 postmaster。一个 postmaster 的责任就是保证邮件系统正常工作、更新系统配置、添加/删除邮箱帐号,以及其他工作。每个域中必须存在一个 postmaster 的别名(LCTT译注:postmaster 别名用于接受一些其它服务器/用户对该邮件系统的沟通邮件,如关于垃圾邮件拒收的投诉等,通常都会直接被邮件服务器的管理员所接受。一些系统错误和提示的邮件,也往往以postmaster 作为发件人),用于将邮件发往正确的用户。

问题7:Postfix 都有些什么重要的进程?

答:以下是 Postfix 邮件系统里最重要的后台进程列表:

  • master:这条进程是 Postfix 邮件系统的大脑,它产生所有其他进程。
  • smtpd:作为服务器端程序处理所有外部连进来的请求。
  • smtp:作为客户端程序处理所有对外发起连接的请求。
  • qmgr:它是 Postfix 邮件系统的心脏,处理和控制邮件队列里面的所有消息。
  • local:这是 Postfix 自有的本地投递代理MDA,就是它负责把邮件保存到邮箱里。

问题8:Postfix 服务器的配置文件是什么?

答:有两个主要配置文件:

  • /etc/postfix/main.cf:这个文件保存全局配置信息,所有进程都会用到,除非这些配置在 master.cf 文件中被重新设置了。
  • /etc/postfix/master.cf:这个文件保存了额外的进程运行时环境参数,在 main.cf 文件中定义的配置可能会被本文件的配置覆盖掉。

问题9:如何将 Postfix 重启以及设为开机启动?

答:使用这个命令重启:service postfix restart;使用这个命令设为开机启动:chkconfig postfix on

问题10:怎么查看 Postfix 的邮件队列?

答:Postfix 维护两个队列:未决邮件队列(pending mails queue)和等待邮件队列(deferred mail queue)。等待队列包含了暂时发送失败、需要重新发送的邮件,Postfix 会定期重发(默认5分钟,可自定义设置)。(LCTT译注:其实 Postfix 维护5个队列:输入队列,邮件进入 Postfix 系统的第一站;活动队列,qmgr 将输入队列的邮件移到活动队列;等待队列,保存暂时不能发送出去的邮件;故障队列,保存受损或无法解读的邮件;保留队列,将邮件无限期留在 Postfix 队列系统中。)

列出邮件队列里面所有邮件:

# postqueue -p

保存邮件队列名单:

# postqueue -p > /mnt/queue-backup.txt

让 Postfix 马上处理队列:

# postqueue -f

问题11:如何删除邮件队列里面的邮件?

答:以下命令删除所有邮件:

# postsuper -d ALL

以下命令只删除等待队列中的邮件:

# postsuper -d ALL deferred

问题12:如何通过命令来检查 Postfix 配置信息?

答:使用postconf -n命令可以查看,它会过滤掉配置文件里面被注释掉的配置信息。

问题13:实时查看邮件日志要用什么命令?

答:

tail -f /var/log/maillog 或 tailf /var/log/maillog

问题14:如何通过命令行发送测试邮件?

答:参考下面的命令:

# echo "Test mail from postfix" | mail -s "Plz ignore" [email protected]

问题15:什么是“开放邮件转发(Open Relay)”?

答:开放邮件转发是 SMTP 服务器的一项设定,允许因特网上任意的其他用户能通过该服务器转发邮件,而不是直接发送到某个帐号的服务器或只允许授权用户通过它来发送邮件。过去,这项功能在许多邮件服务器中都是默认开启的,但是现在已经不再流行了,因为邮件转发会导致大量垃圾邮件和病毒邮件在网络上肆虐。

问题16:什么是 Postfix 上的邮件转发主机?

答:转发主机是 SMTP 的地址,如果在配置文件中有配置,那么所有输入邮件都将被 SMTP 服务器转发。

问题17:什么是灰名单?

答:灰名单(LCTT译注:介于白名单和黑名单之间)是一种用于拦截垃圾邮件的技术。一个 MTA 使用灰名单时就会“暂时拒绝”未被识别的发送者发来的所有邮件。如果邮件是正当合理的,发起者会在一段时间后重新发送,然后这份邮件就能被接收。(LCTT译注:灰名单基于这样一个事实,就是大多数的垃圾邮件服务器和僵尸网络的邮件只发送一次,而会忽略要求它们在一定的时间间隔后再次发送的请求。)

问题18:邮件系统中 SPF 记录有什么重要作用?

答:SPF 是 Sender Policy Framework 的缩写,用于帮助邮件域的拥有者确认发送方是否来自他们的域,目的是其他邮件系统能够保证发送方在发送邮件时来自经过授权的来源 —— 这种方法可以减小遇到邮件地址欺骗、网络钓鱼和垃圾邮件的风险。

问题19:邮件系统中 DKIM 有什么用处?

答:域名密匙是一套电子邮件身份认证系统,用于验证邮件发送方的 DNS 域和邮件的完整性。域名密匙规范采用互联网电子邮件认证技术,建立了一套加强版协议:域名密匙识别邮件(就是 DKIM)。

问题20:邮件系统中 ASSP 的规则是什么?

答:ASSP(Anti-Spam SMTP Proxy,反垃圾代理) 是一个网关服务器,安装在你的 MTA 前面,通过自建白名单、自动学习贝叶斯算法、灰名单、DNS 黑名单(DNSBL)、DNS 白名单(DNSWL)、URI黑名单(URIBL)、SPF、SRS、Backscatter、病毒扫描功能、附件阻拦功能、基于发送方等多种方法来反垃圾邮件。


via: http://www.linuxtechi.com/postfix-interview-questions-answers/

作者:Pradeep Kumar 译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出