分类 技术 下的文章

假如你是一个命令行爱好者,我很确信你会使用这个强大的工作环境来执行哪怕是一项日常任务的工具,并为之欢呼,例如从 安排日程管理财务 到 获取 FacebookTwitter等任务。(LCTT 译注:阅读本文的另一个前提是,假如你还能访问 Gmail 或者知道 Gmail 是什么的话。)

在这个帖子中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:访问 Google 的 Gmail 服务,为此,我们将使用 Alpine,一个基于 ncurses 的多功能命令行邮件客户端(不要和 Alpine Linux 搞混淆)。我们将在 Alphine 中配置 Gmail 的 IMAP 和 SMTP 设定,通过 Google 的邮件服务器在终端环境中收取和发送邮件。在这个教程的最后,你将发现只需几步就可以在 Alpine 中使用其他的邮件服务。

诚然,已有许多卓越的基于 GUI 的邮件客户端存在,例如 Thunderbird, Evolution 或者甚至是 Web 界面,那么为什么还有人对使用命令行的邮件客户端来收取 Gmail 这样的事感兴趣呢?答案很简单。假如你需要快速地处理好事情并想避免浪费不必要系统资源;或者你正工作在一个精简安装无操作台的服务器上,它没有安装用于图形显示的 X 服务;又或者是 X 服务在你的桌面上崩溃了,而你需要在解决这个问题之前急切地发送一些邮件。在上述所有的情况下, Alpine 都可以派上用场并在任何时间满足你的需求。

除了简单的编辑,发送和接收文本类的邮件信息等功能外, Alpine 还可以进行加密,解密和对邮件信息进行数字签名,以及与 TLS(注:Transport Layer Security,传输层加密)无缝集成。

在 Linux 上安装 Alpine

在基于 Red Hat 的发行版本上,可以像下面那样来安装 Alpine。需要注意的是,在 RHEL 或 CentOS 上,你需要首先启用 EPEL 软件仓库

# yum install alpine 

在 Debian,Ubuntu 或它们的衍生发行版本上,你可以这样做:

# aptitude install alpine

在安装完成后,你可以运行下面的命令来启动该邮件客户端:

# alpine

在你第一次启用 Alpine 时,它将在当前用户的家目录下创建一个邮件文件夹(~/mail),并显现出主界面,正如下面的视频所显示的那样:YOUTUBU 视频 - http://www.youtube.com/kuKiv3uze4U

它的用户界面有下列几个模块:

请随意地浏览、操作来熟悉 Alpine。你总是可以在任何时候通过敲 'Q' 来回到命令提示符界面。请注意,所有的字符界面下方都有与操作相关的帮助。

在进一步深入之前,我们将为 Alpine 创建一个默认的配置文件。为此,请关闭 Alpine,然后在命令行中执行下面的命令:

# alpine -conf > /etc/pine.conf 

配置 Alpine 来使用 Gmail 账号

当你安装了 Alpine 并至少花费了几分钟的时间来熟悉它的界面和菜单,下面便是实际配置它来使用一个已有的 Gmail 账户的时候了。

在 Alpine 中执行下面的步骤之前,记得首先要通过你的 Web 邮件界面,在你的 Gmail 设定里启用 IMAP 协议。一旦在你的 Gmail 账户中启用了 IMAP ,执行下面的步骤来在 Alpine 中启用阅读 Gmail 信息的功能。

首先,启动 Alpine。

按 'S' 来进行设置,再按 'L' 选择 collectionLists 选项来定义不同的文件夹类别以帮助你更好地组织你的邮件:

按 'A' 来新建一个文件夹并填写必要的信息:

  • Nickname: 填写任何你想写的名字;
  • Server: imap.gmail.com/ssl/user=[email protected]

你可以将 PathView 留白不填。

然后按 Ctrl+X 并在提示时输入你的 Gmail 密码:

假如一切如预期一样进展顺利,就会出现一个以你先前填写的昵称来命名的新文件夹。你应该可以在这里找到你的 Gmail 信箱:

要验证的话,你可以比较在 Alpine 中显示的 "Gmail Sent" 信箱和在 Web 界面下的信箱:

默认情况下,每隔 150 秒,它将自动检查新邮件或提示,你可以在文件 /etc/pine.conf中改变这个值,同时你还可以修改许多其他设定。这个配置文件拥有详细且清晰的注释。例如,为了将检查新邮件的时间间隔设定为 10 秒,你需要这样设定:

# The approximate number of seconds between checks for new mail
mail-check-interval=10

最后,我们需要配置一个 SMTP 服务器来通过 Alpine 发送邮件。回到先前解释过的 Alpine 的设置界面,然后按 'C' 来设定一个 Google 的 SMTP 服务器地址,你需要像下面这样编辑 SMTP Server(用于发送邮件)这一行内容:

smtp.gmail.com:587/tls/[email protected]

当你按 'E' 离开设定界面时,将会提醒你保存更改。一旦你保存了更改,马上你就可以通过 Alpine 来发送邮件了!为此,来到主菜单中的 Compose 选项,接着开始从命令行中操作你的 Gmail 吧。

总结

在这个帖子里,我们讨论了在终端环境中如何通过一个名为 Alpine 的轻量且强大的命令行邮件客户端来访问 Gmail。 Alpine 是一个发布在 Apache Software License 2.0 协议下的自由软件,该协议与 GPL 协议相兼容。 Alpine 引以自豪的是:它不仅对新手友好,同时还做到了让那些经验丰富的系统管理员认为它是强大的。我希望在你阅读完这篇文章后,你能意识到我最后一个论断是多么的正确。

非常欢迎使用下面的输入框来留下你的评论或问题。我期待着你们的反馈!


via: http://xmodulo.com/gmail-command-line-linux-alpine.html

作者:Gabriel Cánepa 译者:FSSlc 校对:wxy

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

本文全面详细地向你描述了在Ubuntu中如何实现局域网内的文件夹共享

你的家中是不是有多台电脑?当你需要从一台Ubuntu电脑向另一台电脑传输数据时,是不是必须用到U盘或SD卡?你是否也觉得这个方法很烦人?我想肯定是。本文的目的就是使你在局域网内快速方便地传输文件、文档和其它较大的数据,以节省你的宝贵时间。只需一次设置,然后轻点鼠标,你就可以自由地在Ubuntu和Windows之间共享文件,当然这对其它Linux系统同样使用。不要担心,这很容易操作,不会花费太多时间。

除此之外,尽管本文是在Ubuntu上进行实践,但这个教程在其它Linux系统上同样有用。

在Ubuntu上实现局域网共享文件夹

如果你的系统是Ubuntu 14.04、14.10或12.04,有两个方法可以使你通过局域网在搭载Windows或其他Linux的电脑上共享本地文件。

  • 对局域网中的每个用户提供无密码共享
  • 仅限特定访问,提供文件夹密码保护

这篇文章包括两种方法,你可以选择你想用的那种。

1. 局域网无密码共享文件夹

步骤一:

为了在Ubuntu上实现局域网共享文件夹,右键点击打算共享的文件夹,并选择“Local Network Share(本地网络共享)”:

可能有用的故障解决方案:如果在右键菜单中看不到“Local Network Share”的选项,那就新建一个终端,使用下面的命令去安装nautlius-share插件:

sudo apt-get install nautilus-share

然后重启Nautilus。可以选择注销再登录,或者使用这个命令:

nautilus -q

步骤二:

一旦点击“Local Network Share”,就会出现共享文件夹的选项。只需选中“Share this folder(共享该文件夹)”这一项:

可能的故障解决方案:如果提示共享服务还未安装,就像下图所示,那就点击安装服务,按照提示操作。

步骤三:

当选中“Share this folder”的选项,就会看到按钮“Create Share(创建共享)”变得可以点击了。你也可以“Allow others to create and delete fies in this folder(允许其他用户在共享文件夹中编辑文件)”。选项“Guest access(允许访客访问)”也是如此。

你会看到文件夹图标已经显示为共享的。如果要停止共享文件夹,只需取消“Share this floder”这个选项。

这个方法就是这么简单,使得局域网中的任何人都可以访问共享文件夹中的文件。在正常情况下,你会选择这种方式。因为,家用局域网中的电脑通常都是可信电脑。但情况也不总是这样。如果你只是想特定的用户才能访问怎么办?这个时候就需要Samba服务器了。我们在本文的第二部分讨论这种方法。

2. 在Ubuntu上使用密码保护实现局域网共享文件夹

为了达到这个目的,首先需要配置Samba服务器。事实上,在这篇教程的前一部分我们已经用到了Samba,只是我们没有刻意强调。在介绍如何在Ubuntu上搭建Samba服务器实现局域网共享的方法之前,先快速预览一下Samba到底是什么。

Samba是什么?

Samba是一个允许用户通过网络共享文件、文档和打印机的软件包,无论是在Linux、Windows,还是Mac上。它适用于所有的主流平台,可以在所有支持系统上流畅运行。下面是维基百科的介绍:

Samba是一款重新实现SMB/CIFS网络协议的自由软件,最初由安德鲁·垂鸠开发。在第三版中,Smaba不仅支持通过不同的Windows客户端访问及分享SMB的文件夹及打印机,还可以集成到Windows Server域,作为主域控制器(PDC)或者域成员。它也可以作为活动目录域的一部分。

在Ubuntu上安装Samba服务器

你可以很方便地在Ubuntu电脑上安装Samba。安装前,请先更新系统以便安装任何可用的更新。

sudo apt-get update && apt-get upgrade

然后按照这条命令安装samba和少量所需的软件包:

sudo apt-get install samba samba-common system-config-samba python-glade2 gksu

一旦安装完成Samba服务器,就可以从图形界面配置Samba来分享文件。

在Ubuntu上配置Samba服务器

从dash中打开Samba配置工具:

进入到Preference->Server Settings。尽管默认已经设置好,可能就是你需要的。但在某些情况下你可能需要做一些改动。

在Server Setting中可以看到两个选项卡,‘Basic’和‘Security’。在Basic选项卡下的选项含义如下:

  • 工作组 - 用户要连接的电脑所在工作组的名字。比如,如果你想连接到一台Windows电脑,你就要输入Windows电脑的工作组名字。在Windows的Samba服务器设置中,已经默认设置好统一的工作组名字。但如果你有不同的工作组名字,就在这个字段中输入自定义的工作组名字。(在Windows 7中获取工作组名字,右击计算机图标,进到属性,就能看到Windows工作组名字。)
  • 描述 - 其他用户看到的你的电脑名字。不要使用空格或不适用于网络的字符。

设置samba服务器允许‘Guests’可用是不明智的,所以没必要修改安全设置,保持原样即可。

这就搞定了!你已经搭建好Samba服务器,距离实现网络共享第一个文件夹的目标不远了!

为网络文件共享创建一个系统用户

现在我们需要为网络共享文件创建一个系统用户。下面是非常简单的步骤:

  • 在Systems Settings下点击User Accounts
  • 点击unlock使其可用,以及+(加号)图标。
  • 点击+(加号)图标,创建一个新的系统用户。

如上图所示,需要输入‘Full name’。当你输入‘Full name’时,Username会自动填充为Full name。因为创建这个用户是为了共享文件,所以还要指定Account Type为‘Standard’。

完成上述步骤,点击添加,你就创建好一个系统用户。这个用户还没有被激活,所以需要为其设置密码来激活。确保Users accounts界面已经解锁。点击尚不可用的账户,输入一个新密码,然后确认密码,点击Change。

耶!到目前为止我们已经安装并配置好Samba,已经创建了一个系统用户以通过这个账户在网络上共享文件,而且也已经激活了新用户。现在来到配置Samba的最后一步,然后就可以共享文件夹了。

添加Samba新用户

打开Samba,在Preference先点击Samba Users。填写弹出的对话框,下面是其中几个字段的说明:

Unix Username - 在这种情况下,我选择刚才创建的用户。

Windows Username - 输入你要访问的Windows电脑的用户名。

Samba Password - 输入你要访问的Windows电脑的密码。

完成后点击OK。现在做个深呼吸。你已经在Samba的帮助下成功创建一个网络。然后重启网络或Samba服务,准备好和其它电脑共享文件。

sudo restart smbd && sudo restart nmbd

通过网络共享文件夹或文件

在图形用户界面下通过Samba共享文件是很简单的。点击加号图标,会看到如图所示的对话框:

填写完这些字段。在‘Directory’中,浏览要共享的文件夹。你会看到的字段的含义如下:

  • Share name 是其它人会看到的文件夹名字。
  • Description 是要共享内容的简单描述。
  • Writeable 默认情况下共享的文件夹是‘read only’。如果允许网络上的其他用户修改它们,设置为writable。
  • Visiable 当你点击Visiable时,就像它的名字一样,共享文件夹就对网络上的其他人可见。

现在你可以设置共享文件夹的权限。点击‘Access’选项,选择想要共享文件夹的用户。当你选择对所有人允许访问后,这个文件夹就对网络上的所有人可见。

最后点击OK,完成共享。现在这个文件夹就与你想要共享的用户实现共享。你已经完成了网络共享文件。还有其它要做的吗?对!还不知道如何从网络上移除文件夹?

移除共享文件夹

在网络共享一段时间后,我们也需要移除其中的一些文件夹。操作很简答,下面就是我们要做的。

全部搞定!我们也可以使用终端进行网络文件共享,但这样没有本文介绍的方法这么容易。如果你确实想知道命令行操作,我会再写一篇关于在Linux上使用命令行实现网络文件共享的文章。

所以,你是怎么找到这篇教程的呢?我希望看了这篇教程你可以很容易地在Ubuntu和Windows之间共享文件。如果你有任何问题或建议,请在评论里说出来。


via: http://itsfoss.com/share-folders-local-network-ubuntu-windows/

作者:Mohd Sohail 译者:KayGuoWhu 校对:wxy

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

假如你想对Linux中的一些重要文件做写保护,这样它们就不能被删除或者被篡改成之前的版本或者其他东西,或者在其他情况下,你可能想避免某些配置文件被软件自动修改。使用chownchmod命令修改文件的归属关系或者权限位是处理这种情况的一个解决方法,但这并不完美,因为这样无法避免有root权限的操作。这时chattr就派上用场了。

chattr是一个可以设置或取消文件的标志位的Linux命令,它和标准的文件权限(读、写、执行)是分离的。与此相关的另一个命令是lsattr,它可以显示文件的哪些标志位被设置上了。最初只有EXT文件系统(EXT2/3/4)支持chattrlsattr所管理的标志位,但现在很多其他的原生的Linux文件系统都支持了,比如XFS、Btrfs、ReiserFS等等。

在这个教程中,我会示范如果使用chattr来让Linux中的文件不可变更。

chattrlsattr命令是e2fsprogs包的一部分,它在所有现代Linux发行版都预装了。

下面是chattr的基本语法。

$ chattr [-RVf] [操作符][标志位] 文件...

其中操作符可以是“+”(把选定的标志位添加到标志位列表)、“-”(从标志位列表中移除选定的标志位)、或者“=”(强制使用选定的标志位)。

下面是一些可用的标志位。

  • a: 只能以追加模式打开。
  • A: 不能更新atime(文件访问时间)。
  • c: 当被写入磁盘时被自动压缩。
  • C: 关掉“写时复制”。
  • i: 不可变更。
  • s: 通过自动归零来安全删除。(LCTT 译注:一般情况文件被删后内容不会被修改,改标志位会使得文件被删后原有内容被“0”取代)

“不可变更”标志位

为了让一个文件不可变更,你需要按照如下方法为这个文件添加“不可变更”标志位。例如,对/etc/passwd文件做写保护:

$ sudo chattr +i /etc/passwd

注意设置或取消一个文件的“不可变更”标志位是需要root用户权限的。现在检查该文件“不可变更”标志位是否被添加上了。

$ lsattr /etc/passwd

一旦文件被设置为不可变更,任何用户都将无法修改该文件。即使是root用户也不可以修改、删除、覆盖、移动或者重命名这个文件。如果你想再次修改这个文件,需要先把“不可变更”标志位取消了。

用如下命令取消“不可变更”标志位:

$ sudo chattr -i /etc/passwd

如果你想让一个目录(比如/etc)连同它下边的所有内容不可变更,使用“-R”选项:

$ sudo chattr -R +i /etc

“只可追加”标志位

另一个有用的的标志位是“只可追加”,它只允许文件内容被追加的方式修改。你不能覆盖或者删除一个设置了“只可追加”标志位的文件。这个标志位在你想避免日志文件被意外清理掉的情况很有用。

和“不可变更”标志位类似,你可以使用如下命令让文件变成“只可追加”模式:

$ sudo chattr +a /var/log/syslog

注意当你复制一个“不可变更”或者“只可追加”的文件到其他地方后,新文件不会保留这些标志位!

结论

在这个教程中,我展示了如何使用chattrlsattr命令来管理额外的文件标志位,来避免文件被篡改(意外或者其他情况)的方法。注意你不能将chattr作为一个安全措施,因为“不可变更”标志位可以很容易被取消掉。解决这个问题的一个可能的方式是限制chattr命令自身的可用性,或者去掉CAPLINUXIMMUTABLE内核权能标志。关于chattr以及可用的标志位的更多细节,请参考它的man手册。


via: http://xmodulo.com/make-file-immutable-linux.html

作者:Dan Nanni 译者:goreliu 校对:wxy

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

对任何规模的业务来说,网络监控工具都是一个重要的功能。网络监控的目标可能千差万别。比如,监控活动的目标可以是保证长期的网络服务、安全保护、对性能进行排查、网络使用统计等。由于它的目标不同,网络监控器使用很多不同的方式来完成任务。比如对包层面的嗅探,对数据流层面的统计数据,向网络中注入探测的流量,分析服务器日志等。

尽管有许多专用的网络监控系统可以365天24小时监控,但您依旧可以在特定的情况下使用命令行式的网络监控器,某些命令行式的网络监控器在某方面很有用。如果您是系统管理员,那您就应该有亲身使用一些知名的命令行式网络监控器的经历。这里有一份Linux上流行且实用的网络监控器列表。

包层面的嗅探器

在这个类别下,监控工具在链路上捕捉独立的包,分析它们的内容,展示解码后的内容或者包层面的统计数据。这些工具在最底层对网络进行监控、管理,同样的也能进行最细粒度的监控,其代价是影响网络I/O和分析的过程。

  1. dhcpdump:一个命令行式的DHCP流量嗅探工具,捕捉DHCP的请求/回复流量,并以用户友好的方式显示解码的DHCP协议消息。这是一款排查DHCP相关故障的实用工具。
  2. dsniff:一个基于命令行的嗅探、伪造和劫持的工具合集,被设计用于网络审查和渗透测试。它可以嗅探多种信息,比如密码、NSF流量(LCTT 译注:此处疑为 NFS 流量)、email消息、网络地址等。
  3. httpry:一个HTTP报文嗅探器,用于捕获、解码HTTP请求和回复报文,并以用户友好的方式显示这些信息。(LCTT 译注:延伸阅读。 )
  4. IPTraf:基于命令行的网络统计数据查看器。它实时显示包层面、连接层面、接口层面、协议层面的报文/字节数。抓包过程由协议过滤器控制,且操作过程全部是菜单驱动的。(LCTT 译注:延伸阅读。)

  1. mysql-sniffer:一个用于抓取、解码MySQL请求相关的数据包的工具。它以可读的方式显示最频繁或全部的请求。
  2. ngrep:在网络报文中执行grep。它能实时抓取报文,并用正则表达式或十六进制表达式的方式匹配(过滤)报文。它是一个可以对异常流量进行检测、存储或者对实时流中特定模式报文进行抓取的实用工具。
  3. p0f:一个被动的基于包嗅探的指纹采集工具,可以可靠地识别操作系统、NAT或者代理设置、网络链路类型以及许多其它与活动的TCP连接相关的属性。
  4. pktstat:一个命令行式的工具,通过实时分析报文,显示连接带宽使用情况以及相关的协议(例如,HTTP GET/POST、FTP、X11)等描述信息。

  1. Snort:一个入侵检测和预防工具,通过规则驱动的协议分析和内容匹配,来检测/预防活跃流量中各种各样的后门、僵尸网络、网络钓鱼、间谍软件攻击。
  2. tcpdump:一个命令行的嗅探工具,可以基于过滤表达式抓取网络中的报文,分析报文,并且在包层面输出报文内容以便于包层面的分析。他在许多网络相关的错误排查、网络程序debug、或安全监测方面应用广泛。
  3. tshark:一个与Wireshark窗口程序一起使用的命令行式的嗅探工具。它能捕捉、解码网络上的实时报文,并能以用户友好的方式显示其内容。

流/进程/接口层面的监控

在这个分类中,网络监控器通过把流量按照流、相关进程或接口分类,收集每个流、每个进程、每个接口的统计数据。其信息的来源可以是libpcap抓包库或者sysfs内核虚拟文件系统。这些工具的监控成本很低,但是缺乏包层面的检视能力。

  1. bmon:一个基于命令行的带宽监测工具,可以显示各种接口相关的信息,不但包括接收/发送的总量/平均值统计数据,而且拥有历史带宽使用视图。

  1. iftop:一个带宽使用监测工具,可以实时显示某个网络连接的带宽使用情况。它对所有带宽使用情况排序并通过ncurses的接口来进行可视化。他可以方便的监控哪个连接消耗了最多的带宽。(LCTT 译注:延伸阅读。)
  2. nethogs:一个基于ncurses显示的进程监控工具,提供进程相关的实时的上行/下行带宽使用信息。它对检测占用大量带宽的进程很有用。(LCTT 译注:延伸阅读。)
  3. netstat:一个显示许多TCP/UDP的网络堆栈的统计信息的工具。诸如打开的TCP/UDP连接书、网络接口发送/接收、路由表、协议/套接字的统计信息和属性。当您诊断与网络堆栈相关的性能、资源使用时它很有用。
  4. speedometer:一个可视化某个接口发送/接收的带宽使用的历史趋势,并且基于ncurses的条状图进行显示的终端工具。

  1. sysdig:一个可以通过统一的界面对各个Linux子系统进行系统级综合性调试的工具。它的网络监控模块可以监控在线或离线、许多进程/主机相关的网络统计数据,例如带宽、连接/请求数等。(LCTT 译注:延伸阅读。)
  2. tcptrack:一个TCP连接监控工具,可以显示活动的TCP连接,包括源/目的IP地址/端口、TCP状态、带宽使用等。

  1. vnStat:一个存储并显示每个接口的历史接收/发送带宽视图(例如,当前、每日、每月)的流量监控器。作为一个后台守护进程,它收集并存储统计数据,包括接口带宽使用率和传输字节总数。(LCTT 译注:延伸阅读。)

主动网络监控器

不同于前面提到的被动的监听工具,这个类别的工具们在监听时会主动的“注入”探测内容到网络中,并且会收集相应的反应。监听目标包括路由路径、可供使用的带宽、丢包率、延时、抖动(jitter)、系统设置或者缺陷等。

  1. dnsyo:一个DNS检测工具,能够管理跨越多达1500个不同网络的开放解析器的DNS查询。它在您检查DNS传播或排查DNS设置的时候很有用。
  2. iperf:一个TCP/UDP带宽测量工具,能够测量两个端点间最大可用带宽。它通过在两个主机间单向或双向的输出TCP/UDP探测流量来测量可用的带宽。它在监测网络容量、调谐网络协议栈参数时很有用。一个叫做netperf的变种拥有更多的功能及更好的统计数据。
  3. netcat/socat:通用的网络调试工具,可以对TCP/UDP套接字进行读、写或监听。它通常和其他的程序或脚本结合起来在后端对网络传输或端口进行监听。(LCTT 译注:延伸阅读。)
  4. nmap:一个命令行的端口扫描和网络发现工具。它依赖于若干基于TCP/UDP的扫描技术来查找开放的端口、活动的主机或者在本地网络存在的操作系统。它在你审查本地主机漏洞或者建立维护所用的主机映射时很有用。zmap是一个类似的替代品,是一个用于互联网范围的扫描工具。(LCTT 译注:延伸阅读。)
  5. ping:一个常用的网络测试工具。通过交换ICMP的echo和reply报文来实现其功能。它在测量路由的RTT、丢包率以及检测远端系统防火墙规则时很有用。ping的变种有更漂亮的界面(例如,noping)、多协议支持(例如,hping)或者并行探测能力(例如,fping)。(LCTT 译注:延伸阅读。)

  1. sprobe:一个启发式推断本地主机和任意远端IP地址之间的网络带宽瓶颈的命令行工具。它使用TCP三次握手机制来评估带宽的瓶颈。它在检测大范围网络性能和路由相关的问题时很有用。
  2. traceroute:一个能发现从本地到远端主机的第三层路由/转发路径的网络发现工具。它发送限制了TTL的探测报文,收集中间路由的ICMP反馈信息。它在排查低速网络连接或者路由相关的问题时很有用。traceroute的变种有更好的RTT统计功能(例如,mtr)。

应用日志解析器

在这个类别下的网络监测器把特定的服务器应用程序作为目标(例如,web服务器或者数据库服务器)。由服务器程序产生或消耗的网络流量通过它的日志被分析和监测。不像前面提到的网络层的监控器,这个类别的工具能够在应用层面分析和监控网络流量。

  1. GoAccess:一个针对Apache和Nginx服务器流量的交互式查看器。基于对获取到的日志的分析,它能展示包括日访问量、最多请求、客户端操作系统、客户端位置、客户端浏览器等在内的多个实时的统计信息,并以滚动方式显示。

  1. mtop:一个面向MySQL/MariaDB服务器的命令行监控器,它可以将成本最大的查询和当前数据库服务器负载以可视化的方式显示出来。它在您优化MySQL服务器性能、调谐服务器参数时很有用。

  1. ngxtop:一个面向Nginx和Apache服务器的流量监测工具,能够以类似top指令的方式可视化的显示Web服务器的流量。它解析web服务器的查询日志文件并收集某个目的地或请求的流量统计信息。

总结

在这篇文章中,我展示了许多命令行式监测工具,从最底层的包层面的监控器到最高层应用程序层面的网络监控器。了解那个工具的作用是一回事,选择哪个工具使用又是另外一回事。单一的一个工具不能作为您每天使用的通用的解决方案。一个好的系统管理员应该能决定哪个工具更适合当前的环境。希望这个列表对此有所帮助。

欢迎您通过回复来改进这个列表的内容!


via: http://xmodulo.com/useful-command-line-network-monitors-linux.html

作者:Dan Nanni 译者:wwy-hust 校对:wxy

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

提问: 我打算在linux上安装autossh,我应该怎么做呢?

autossh 是一款开源工具,可以帮助管理SSH会话、自动重连和停止转发流量。autossh会假定目标主机已经设定无密码SSH登陆,以便autossh可以重连断开的SSH会话而不用用户操作。

只要你建立反向SSH隧道或者挂载基于SSH的远程文件夹,autossh迟早会派上用场。基本上只要需要维持SSH会话,autossh肯定是有用的。

下面有许多linux发行版autossh的安装方法。

Debian 或 Ubuntu 系统

autossh已经加入基于Debian系统的基础库,所以可以很方便的安装。

$ sudo apt-get install autossh 

Fedora 系统

Fedora库同样包含autossh包,使用yum安装。

$ sudo yum install autossh 

CentOS 或 RHEL 系统

CentOS/RHEL 6 或早期版本, 需要开启第三库Repoforge库, 然后才能使用yum安装.

$ sudo yum install autossh 

CentOS/RHEL 7以后,autossh 已经不在Repoforge库中. 你需要从源码编译安装(例子在下面)。

Arch Linux 系统

$ sudo pacman -S autossh 

Debian 或 Ubuntu 系统中从源码编译安装

如果你想要使用最新版本的autossh,你可以自己编译源码安装

$ sudo apt-get install gcc make
$ wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz
$ tar -xf autossh-1.4e.tgz
$ cd autossh-1.4e
$ ./configure
$ make
$ sudo make install 

CentOS, Fedora 或 RHEL 系统中从源码编译安装

在CentOS/RHEL 7以后,autossh不在是预编译包。所以你不得不从源码编译安装。

$ sudo yum install wget gcc make
$ wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz
$ tar -xf autossh-1.4e.tgz
$ cd autossh-1.4e
$ ./configure
$ make
$ sudo make install 

via: http://ask.xmodulo.com/install-autossh-linux.html

作者:Dan Nanni 译者:Vic020/VicYu 校对:wxy

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

大家好,今天我们要学习一下怎样在github.com提供的仓库中托管开源软件源代码。GitHub是一个基于web的Git仓库托管服务,提供基于 git 的分布式版本控制和源代码管理(SCM)功能,并加入了自身的特点。它给开源项目和私有项目提供了一个互相协作的工作区、代码预览和代码管理功能。不像Git是一个完完全全的命令行工具,GitHub提供了一个基于web的图形化界面和桌面,也整合了手机操作。GitHub同时提供了私有库付费计划和通常用来管理开源软件项目的免费账号。

github universe logo

这是一种快速灵活,基于web的托管服务,它使用方便,管理分布式版本控制系统也是相当容易,任何人都能将他们的软件源代码托管到 github,让全球各地数以百万计的人可以使用它、参与贡献、共享它、进行问题跟踪以及更多的用途。这里有一些简单快速地托管软件源代码的方法。

1. 创建一个新的Github账号

首先,打开你最喜欢的浏览器并访问github,首页页面如下所示。

Github Homepage

现在,首页打开之后,请填写一个新的github账号用于注册。

输入注册所需的有效信息之后,你会被转到计划选择的步骤。在这个页面上有5种计划,我们可以根据需要来选择,这里我们要选择免费计划。所以,我们点击选择Free计划并完成注册。如果我们接下去还打算创建一个组织,那我们需要勾选“Help me setup an organization next”。

choosing plan

2. 创建一个新的库

成功注册新账号或登录上Github之后,我们需要创建一个新的库来开始我们的征程。

点击位于顶部靠右账号id旁边的(+)按钮,然后点击“New Repository”。

Add new repository

点击创建一个新的库之后,我们进入了填写所需信息的页面。

adding repository information

填写好信息之后,我们点击绿色的“Create repository”按钮。

这些步骤都做完之后,我们将看到类似于下面这张图的页面。

repository github

3. 上传一个已有项目

如果我们想在Github上分享我们的项目,我们自然要把代码推上我们创建的库中。想要这样的话,我们首先要在我们的Linux机器上安装git。如果我在机器上运行的是Ubuntu 14.04 LTS,我需要运行apt工具来安装它。

$ sudo apt-get install git

installing git

现在git已经准备就绪,我们要上传代码了。

注意:为了避免错误,不要在初始化的新库中包含README、license或gitignore等文件,你可以在项目推送到Github上之后再添加它们。

在终端上,我们需要切换当前工作目录为你的本地项目的目录,然后将其初始化为Git库。

$ git init

接着我们添加新的本地库里中的文件,作为我们的首次提交内容。

$ git add .

现在我们就提交我们在本地库所添加的文件。

$ git commit -m 'First commit'

git commit

在终端上,添加远程库的URL地址,以便我们的本地库推送到远程。

$ git remote add origin 远程库的URL
$ git remote -v

adding remote url

注意:请确保将上述“远程库的URL”替换成了你自己的远程库的URL。

现在,要将我们的本地库的改变推送至GitHub的版本库中,我们需要运行以下命令,并且输入所需的用户名和密码。

$ git push origin master

pushing repo

克隆一个库

如果我们想用一条简单地命令从github上下载代码库至本机上,我们可以用git clone命令,该命令将会从远程库中克隆最新的目录。

$ git clone https://github.com/aruntechgeek/linspeed.git

cloning repo

请把以上这条URL地址更改成你想要克隆的地址。

推送改动

如果我们对我们的代码做了更改并想把它们推送至我们的远程库中,我们应该在该目录下运行以下命令。

$ git add .
$ git commit -m "Updating"
$ git push

结论

啊哈!我们已经成功地将我们的项目源代码托管到Github的库中了。Github是快速灵活的基于web的托管服务,分布式版本控制系统使用起来方便容易。数百万个非常棒的开源项目驻扎在github上。所以,如果你有任何问题、建议或反馈,请在评论中告诉我们。谢谢大家!好好享受吧 :-)


via: http://linoxide.com/usr-mgmt/host-open-source-code-repository-github/

作者:Arun Pyasi 译者:ZTinoZ 校对:wxy

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