2016年3月

昨晚,北京时间2016/3/30 23点30分,微软 //Build 2016 开发者大会在美国旧金山莫斯康展览中心拉开帷幕。

在本次大会上宣布,微软与 Ubuntu 的母公司 Canonical 合作开发了一个超级隐秘的项目,将 Ubuntu 的 用户空间 user space 带到了 Windows 10 之中。 据大会现场消息披露,你现在可以在 Windows 10 中直接运行 Linux 下的 bash 以及其它的数万个二进制程序了

正在旧金山参加本次大会的 Canonical 的 Ubuntu 产品与战略负责人 Dustin Kirkland 也在其博客上宣布了这个消息。

“这对于我来说也许有点奇怪,我已经快有16年没有使用 Windows 了。但在几个月前有了变化,我参与到了微软和 Canonical 合作的一个超级隐秘(也十分令人震惊)的项目中,这一切会在这次 Build 大会上由 Kevin Gallo 揭晓...”,他说,“现在可以在 Windows 10 cmd.exe 窗口内原生地运行 Ubuntu 用户空间和 bash !”

“好吧,这是一个运行在虚拟机的 Ubuntu 吗?” 不!这根本不是一个虚拟机,不用在虚拟机中启动 Linux 内核,它就是 Ubuntu 的用户空间。

“哦,那是运行在容器里面啰?” 不不!这也不是一个容器,这是在 Windows 里面直接运行原生的 Ubuntu 二进制程序。

“嗯,就像 cygwin 那样?”不不不!cygwin 所包括的开源程序是以源代码重新编译后才能原生运行在 Windows 上。而这里,我们说的是一个比特都不差、校验值完全一样的 Ubuntu 的 ELF 二进制程序可以直接运行在 Windows 下

... ...

“那么,这就像是模拟器一样么?”越来越接近真相了,来自微软的一些技术人员正在研究一种技术,将 Linux 的系统调用实时地转换为 Windows 的系统调用。你可以把它当成 Wine 的一种反向技术。微软将其称之为“ Windows 下的 Linux 子系统 Windows Subsystem for Linux ”,当然现在还没有开源。

如果你使用 Windows 10 来开发跨平台应用,那么“Ubuntu on Windows”项目将可以让你从 Windows 启动菜单直接访问 Linux 下的 bash shell。只需要键入 bash ,然后回车,就会打开一个命令行窗口,里面运行着 /bin/bash,然后数以万计的来自 Ubuntu 软件库中的二进制程序就可以运行了,包括但不限于 apt、ssh、 rsync、 find、 grep、 vim、 emacs、 awk、 sed、 ruby、 tar、 sort、php、 mysql、 perl、 python、 wget、 md5sum、 gpg、 curl、 apache、 gcc、 diff、patch 等等。

“这是 Windows 上原生可用的完整 Ubuntu 环境,不是虚拟化或模拟器,这是打破常识的里程碑和通向新天地的里程碑,”Canonical 公司 CEO Mark Shuttleworth 说,“不管怎么说,我们很高兴将 Ubuntu 带到了 Windows ,以一种神奇的方式满足了 Windows 开发者探索 Linux 的需要。”

这个技术当前基于 Ubuntu 14.04 LTS 开发,可以从 Windows Store 中下载早期 beta 版本。有关该项目的进一步技术细节,我们会在之后的文章中进行探讨。

问题: 如何在你的 Linux 发行版上安装 Node.js?

Node.js 是建立在谷歌的 V8 JavaScript 引擎服务器端的软件平台上。在构建高性能的服务器端应用程序上,Node.js 在 JavaScript 中已是首选方案。是什么让使用 Node.js 库和应用程序的庞大生态系统来开发服务器后台变得如此流行。Node.js 自带一个被称为 npm 的命令行工具可以让你轻松地安装它,进行版本控制并使用 npm 的在线仓库来管理 Node.js 库和应用程序的依赖关系。

在本教程中,我将介绍 如何在主流 Linux 发行版上安装 Node.js,包括 Debian,Ubuntu,Fedora 和 CentOS

Node.js 在一些发行版上有预构建的程序包(如,Fedora 或 Ubuntu),而在其他发行版上你需要通过源码安装。由于 Node.js 发展比较快,建议从源码安装最新版而不是安装一个过时的预构建的程序包。最新的 Node.js 自带 npm(Node.js 的包管理器),让你可以轻松的安装 Node.js 的外部模块。

在 Debian 上安装 Node.js on

从 Debian 8 (Jessie)开始,Node.js 已被纳入官方软​​件仓库。因此,你可以使用如下方式安装它:

$ sudo apt-get install npm

在 Debian 7 (Wheezy) 以前的版本中,你需要使用下面的方式来源码安装:

$ sudo apt-get install python g++ make
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

在 Ubuntu 或 Linux Mint 中安装 Node.js

Node.js 被包含在 Ubuntu(13.04 及更高版本)。因此,安装非常简单。以下方式将安装 Node.js 和 npm。

$ sudo apt-get install npm
$ sudo ln -s /usr/bin/nodejs /usr/bin/node

而 Ubuntu 中的 Node.js 可能版本比较老,你可以从 其 PPA 中安装最新的版本。

$ sudo apt-get install python-software-properties python g++ make
$ sudo add-apt-repository -y ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install npm

在 Fedora 中安装 Node.js

Node.js 被包含在 Fedora 的 base 仓库中。因此,你可以在 Fedora 中用 yum 安装 Node.js。

$ sudo yum install npm

如果你想安装 Node.js 的最新版本,可以按照以下步骤使用源码来安装。

$ sudo yum groupinstall 'Development Tools'
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

在 CentOS 或 RHEL 中安装 Node.js

在 CentOS 使用 yum 包管理器来安装 Node.js,首先启用 EPEL 软件库,然后运行:

$ sudo yum install npm

如果你想在 CentOS 中安装最新版的 Node.js,其安装步骤和在 Fedora 中的相同。

在 Arch Linux 上安装 Node.js

Node.js 在 Arch Linux 的社区库中可以找到。所以安装很简单,只要运行:

$ sudo pacman -S nodejs npm

检查 Node.js 的版本

一旦你已经安装了 Node.js,你可以使用如下所示的方法检查 Node.js 的版本。

$ node --version 

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

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

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

不止是在 Linux 的内核上面你才能体验到 Ubuntu 的快捷方便,伙计们。UbuntuBSD 可以让你在 FreeBSD 的内核上面也能体验到那种方便快捷。

UbuntuBSD 称自己是 ‘Unix for human beings’,这一点也不人惊讶。如果你能想起来的话,Ubuntu 使用的标语是 ‘Linux for human beings’ ,并且在过去的 11 年里它确实让一个‘正常人’有可能用上 Linux。

UbuntuBSD 有着同样的想法。它想让新手能够接触到 Unix ,以及能使用它——如果我能这样说的话。至少,这就是它的目标。

什么是 BSD ? 它和 Linux 有哪些不同?

如果你是新手,那么你需要知道 Unix 和 Linux 的区别.

在 Linux 出现之前,Unix 由 AT&TKen ThompsonDenis Ricthie 以及他们的团队设计。这是在可以算作计算机上古时期的 1970 发生的事。当你知道 Unix 是一个闭源的,有产权的操作系统时你可能会感到惊讶。AT&T 给了很多第三方许可,包括学术机构和企业。

美国加州大学伯克利分校是其中一个拿到许可的学术机构。在那里开发的 Unix 系统叫做 BSD (Berkeley Software Distribution)。BSD 的最出名的开源分支是 FreeBSD,另一个最流行的闭源分支是苹果的 Mac OS X。

在 1991 年。芬兰的计算机系大学生 Linus Torvalds 从头写了自己的 Unix 系统的复制品。这就是我们今天熟知的 Linux 内核。Linux 的发行版在内核的基础上添加了图形界面、GNU 的那一套(cp, mv, ls,date, bash 什么的)、安装/管理工具,GNU C/C++ 编译器以及很多应用。

UbuntuBSD 不是这种发行版的开端

在你知道了 Linux,Unix,FreeBSD 之间的区别之后。我要告诉你的是 UbuntuBSD 不是第一个要在 FreeBSD 内核上作出类似 Linux 的感觉的发行版。

当 Debian 选择使用 systemd 之后,Debian GNU/kFreeBSD诞生了。它使用的不是通常的 Linux 内核,而是 将 Debian 移植到了 FreeBSD 内核上。

与 Debian GNU/kFreeBSD 类似,UbuntuBSD 是将 Ubuntu 移植到了 FreeBSD 内核上。

UbuntuBSD Beta 版代号: Escape From SystemD

UbuntuBSD 的第一个版本已经发布,代号为“Escape From SystemD ”。它基于 Ubuntu 15.10 和 FreeBSD 10.1.

它的默认桌面环境为 Xfce ,桌面以及服务器均可使用。 对于 ZFS 的支持也包含在这个版本中。开发者还提供了一个文本界面的安装器。

想试试?

我不建议任何人马上就去开心地去尝试这个系统。它仍在开发并且安装器还是文本界面的。不过如果你足够自信的话,直接去下载体验吧。但是如果你是新手的话,请等一段时间,至少不要现在就去尝试:

你认为 UbuntuBSD 怎么样? 兹瓷不兹瓷它?


via: http://itsfoss.com/ubuntubsd-ubuntu-freebsd/

作者:ABHISHEK 译者:name1e5s 校对:wxy

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

我们去年报道了 ownCloud 正与 西部数据 Western Digital 实验室沟通,帮助他们开发一个社区项目,将给用户带来可以在家中自托管的云存储设备。

自托管设备背后的理念,是由 ownCloud 服务端软件承载的,它结合了树莓派和西数硬盘到一个易安装和开箱即用的容器中。

社区的反应看上去很积极,ownCloud Pi 项目收到了许多好的提议和点子。今天,我们收到了一个更好的消息,首个镜像可以下载了。

ownCloud Pi 基于最新的 Snappy Ubuntu Core 16.04 LTS 系统,它由 Canonical 为嵌入式和 物联网(Internet of Things)设备所设计,包括新的树莓派3 Model B。

ownCloud 的开发者在今天的声明中称:“我们正在寻求来自 ownCloud、Ubuntu、树莓派和西数实验室等社区的帮助来测试和提高它们,并且可以在下周发布首批30台设备”。

目前的阻碍、挑战及前进的路

目前团队正致力于在基于 Xenial Xerus 版本的 Snappy Ubuntu 内核上完成他们的 ownCloud Pi 设备方案。这样,新的64位树莓派3可以帮助它们克服之前在树莓派2上遇到的阻碍,比如支持大于2GB的文件。

由此看来,最终的 ownCloud Pi 将在今年春天发布预览版,它将会在树莓派3上运行。之后,我们应该就可以购买首批可用于产品环境版本的 ownCloud Pi 设备了。


via: http://news.softpedia.com/news/owncloud-pi-device-to-run-on-snappy-ubuntu-core-16-04-lts-and-raspberry-pi-3-501904.shtml

作者:Marius Nestor 译者:geekpi 校对:wxy

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

最近,Linux 基金会发起了一个全新的 LFCS( Linux 基金会认证系统管理员 Linux Foundation Certified Sysadmin )认证,旨在让遍布全世界的人都有机会参加该认证的考试,通过考试的人将表明他们有能力在 Linux 上执行基本的中级系统管理任务。这项认证包括了对已运行的系统和服务的支持、一流水平的问题解决和分析以及决定何时将问题反映给工程师团队的能力。

Linux Foundation Certified Sysadmin – Part 3

LFCS 系列第三讲

请看以下视频,这里边讲给出 Linux 基金会认证程序的一些想法。

本讲是系列教程中的第三讲,在这一讲中,我们会涵盖如何在文件系统中归档/压缩文件及目录、设置文件属性和搜索文件等内容,这些都是 LFCS 认证中必须掌握的知识。

归档和压缩的相关工具

文件归档工具将一堆文件整合到一个单独的归档文件之后,我们可以将归档文件备份到不同类型的介质或者通过网络传输和发送 Email 来备份。在 Linux 中使用频率最高的归档实用工具是 tar。当归档工具和压缩工具一起使用的时候,可以减少同一文件和信息在硬盘中的存储空间。

tar 使用工具

tar 将一组文件打包到一个单独的归档文件(通常叫做 tar 文件或者 tarball)。tar 这个名称最初代表 磁带存档程序 tape archiver ,但现在我们可以用它来归档任意类型的可读写介质上边的数据,而不是只能归档磁带数据。tar 通常与 gzip、bzip2 或者 xz 等压缩工具一起使用,生成一个压缩的 tarball。

基本语法:

# tar [选项] [路径名 ...]

其中 ... 代表指定哪些文件进行归档操作的表达式

tar 的常用命令

长选项简写描述
-createc创建 tar 归档文件
-concatenateA将一存档与已有的存档合并
-appendr把要存档的文件追加到归档文件的末尾
-updateu更新新文件到归档文件中去
-diff 或 -compared比较存档与当前文件的不同之处
-file archivef使用档案文件或归档设备
-listt列出 tarball 中的内容
-extract 或 -getx从归档文件中释放文件

常用的操作修饰符

长选项缩写描述
-directory dirC执行归档操作前,先转到指定目录
-same-permissionsp保持原始的文件权限
-verbosev列出所有的读取或提取的文件。但这个标识符与 -list 一起使用的时候,还会显示出文件大小、属主和时间戳的信息
-verifyW写入存档后进行校验
-exclude file 不把指定文件包含在内
-exclude=patternX以PATTERN模式排除文件
-gzip 或 -gunzipz通过gzip压缩归档
-bzip2j通过bzip2压缩归档
-xzJ通过xz压缩归档

Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高一点。另外,xz 是最新的压缩工具,压缩率最好。xz 具有最佳压缩率的代价是:完成压缩操作花费最多时间,压缩过程中占有较多系统资源。

通常,通过这些工具压缩的 tar 文件相应的具有 .gz、.bz2 或 .xz的扩展名。在下列的例子中,我们使用 file1、file2、file3、file4 和 file5 进行演示。

通过 gzip、bzip2 和 xz 压缩归档

归档当前工作目录的所有文件,并以 gzip、bzip2 和 xz 压缩刚刚的归档文件(请注意,用正则表达式来指定哪些文件应该归档——这是为了防止将归档工具包前一步生成的文件打包进来)。

# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

Compress Multiple Files Using tar

压缩多个文件

列举 tarball 中的内容和更新/追加文件到归档文件中

列举 tarball 中的内容,并显示相同信息为一个详细目录清单。注意,不能直接向压缩的归档文件更新/追加文件(若你需要向压缩的 tarball 中更新/追加文件,需要先解压 tar 文件后再进行操作,然后重新压缩)。

# tar tvf [tarball]

Check Files in tar Archive

列举归档文件中的内容

运行一下任意一条命令:

# gzip -d myfiles.tar.gz    [#1]
# bzip2 -d myfiles.tar.bz2  [#2]
# xz -d myfiles.tar.xz      [#3]

然后:

# tar --delete --file myfiles.tar file4 (删除tarball中的file4)
# tar --update --file myfiles.tar file4 (更新tarball中的file4)

# gzip myfiles.tar      [ 如果你运行 #1 命令 ]
# bzip2 myfiles.tar     [ 如果你运行 #2 命令 ]
# xz myfiles.tar        [ 如果你运行 #3 命令 ]

最后

# tar tvf [tarball] #再次

将 file4 修改后的日期和时间与之前显示的对应信息进行比较

排除文件类型

假设你现在需要备份用户的家目录。一个有经验的系统管理员会选择忽略所有视频和音频文件再备份(也可能是公司规定)。

可能你最先想到的方法是在备份的时候,忽略扩展名为 .mp3 和 .mp4(或者其他格式)的文件。但如果你有些自作聪明的用户将扩展名改为 .txt 或者 .bkp,那你的方法就不灵了。为了发现并排除音频或者视频文件,你需要先检查文件类型。以下 shell 脚本可以代你完成类型检查:

#!/bin/bash
# 把需要进行备份的目录传递给 $1 参数.
DIR=$1
# 排除文件类型中包含了 mpeg 字符串的文件,然后创建 tarball 并进行压缩。
# -若文件类型中包含 mpeg 字符串, $?(最后执行的命令的退出状态)返回 0,然后文件名被定向到排除选项。否则返回 1。
# -若 $? 等于 0,该文件从需要备份文件的列表排除。
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

Exclude Files in tar Archive

排除文件进行备份

使用 tar 保持文件的原有权限进行恢复

通过以下命令,你可以保留文件的权限将备份文件恢复到原始用户的家目录(本例是 user\_restore)。

# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

Restore Files from tar Archive

从归档文件中恢复

扩展阅读:

通过 find 命令搜索文件

find 命令用于递归搜索目录树中包含指定字符的文件和目录,然后在屏幕显示出于指定字符相匹配的文件和目录,或者在匹配项进行其他操作。

通常,我们通过文件名、文件的属主、属组、类型权限、日期及大小来搜索。

基本语法:

# find [需搜索的目录] [表达式]

通过文件大小递归搜索文件

以下命令会搜索当前目录(.)及其下两层子目录(-maxdepth 3,包含当前目录及往下两层的子目录)中大于 2 MB(-size +2M)的所有文件(-f)。

# find . -maxdepth 3 -type f -size +2M

Find Files by Size in Linux * 通过文件大小搜索文件*

搜索符合一定规则的文件并将其删除

有时候,777 权限的文件通常为外部攻击者打开便利之门。不管是以何种方式,让所有人都可以对文件进行任意操作都是不安全的。对此,我们采取一个相对激进的方法——删除这些文件('{}' + 用来“聚集”搜索的结果)。

# find /home/user -perm 777 -exec rm '{}' +

Find all 777 Permission Files

搜索 777 权限的文件

按访问时间和修改时间搜索文件

搜索 /etc 目录下访问时间(-atime)或修改时间(-mtime)大于(+180)或小于(-180) 6 个月或者刚好(180) 6 个月的配置文件。

按照下面例子对命令进行修改:

# find /etc -iname "*.conf" -mtime -180 -print

Find Files by Modification Time

按修改时间搜索文件

文件权限及基本属性

ls -l 命令输出的前 10 位字符是文件的属性,其中第一个字符用来表明文件的类型。

  • – : 普通文件
  • -d : 目录
  • -l : 符号链接
  • -c : 字符设备 (它将数据作为字节流处理,如terminal)
  • -b : 块设备 (在块设备中处理数据,如存储设备)

接下来表示文件属性的 9 位字符叫做文件的读写模式,代表文件属主、同组用户和其他用户(通常指的是“外部世界”)对应的读(r)、写(w)和执行(x)权限。

文件的写权限允许对应的用户对文件进行打开和读写,对于同时设置了执行权限的目录,对应用户可以列举出该目录的内容。另外,文件的执行权限允许将文件当做是一个可执行程序来运行,而目录的执行权限则是允许用户进入和退出该目录。

文件的权限通过 chown 命令来更改,其基本语法如下:

# chmod [new_mode] file

new\_mode 可以是 3 位八进制数值或者对应权限的表达式。

八进制数值可以从二进制数值进行等值转换,通过下列方法来计算文件属主、同组用户和其他用户权限对应的二进制数值:

一个确定权限的二进制数值表现为 2 的幂(r=2^2,w=2^1,x=2^0),当权限省缺时,二进制数值为 0。如下:

Linux File Permissions

文件权限

使用八进制数值设置上图的文件权限,请输入:

# chmod 744 myfile

通过 u、g 和 o 分别代表用户、同组用户和其他用户,然后你也可以使用权限表达式来单独对用户设置文件的权限模式。也可以通过 a 代表所有用户,然后设置文件权限。通过 + 号或者 - 号相应的赋予或移除文件权限。

为所有用户撤销一个 shell 脚本的执行权限

正如之前解释的那样,我们可以通过 - 号为需要移除权限的属主、同组用户、其他用户或者所有用户去掉指定的文件权限。下面命令中的短横线(-)可以理解为:移除(-)所有用户(a)的 backup.sh 文件执行权限(x)。

# chmod a-x backup.sh

下面演示为文件属主、同组用户赋予读、写和执行权限,并赋予其他用户读权限。

当我们使用 3 位八进制数值为文件设置权限的时候,第一位数字代表属主权限,第二位数字代表同组用户权限,第三位数字代表其他用户的权限:

  • 属主:(r=2^2 + w=2^1 + x=2^0 = 7)
  • 同组用户:(r=2^2 + w=2^1 + x=2^0 = 7)
  • 其他用户:(r=2^2 + w=0 + x=0 = 4)

命令如下:

# chmod 774 myfile

随着练习时间的推移,你会知道何种情况下使用哪种方式来更改文件的权限模式的效果最好。

使用 ls -l 详细列举目录详细同样会显示出文件的属主和属组(这个很基本,而且影响到系统文件的访问控制)。

Linux File Listing

列举 Linux 文件

通过 chown 命令可以对文件的归属权进行更改,可以同时或者分开更改属主和属组。其基本语法为:

# chown user:group file

至少要指定用户或者用户组

举几个例子:

将文件的属主更改为指定用户:

# chown gacanepa sent

同时将文件的属主和属组更改为指定的用户和组:

# chown gacanepa:gacanepa TestFile

只将文件的属组更改为指定组。注意组名前的冒号(:)。

# chown :gacanepa email_body.txt

结论

作为一个系统管理员,你需要懂得如何创建和恢复备份、如何在系统中搜索文件并更改它们的属性。通过一些技巧,你可以更好地管理系统并避免以后出问题。

我希望,本文给出的技巧可以帮助你达成管理系统的目标。你可以随时在评论中发表自己的技巧及社区给你带来的益处。

先行感谢!

参考链接


via: http://www.tecmint.com/compress-files-and-finding-files-in-linux/

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

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

Cockpit 是一个自由开源的服务器管理软件,它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器。Cockpit 使得 linux 系统管理员、系统维护员和开发者能轻松地管理他们的服务器并执行一些简单的任务,例如管理存储、检测日志、启动或停止服务以及一些其它任务。它的报告界面添加了一些很好的功能使得可以轻松地在终端和 web 界面之间切换。另外,它不仅使得管理一台服务器变得简单,更重要的是只需要一个单击就可以在一个地方同时管理多个通过网络连接的服务器。它非常轻量级,web 界面也非常简单易用。在这篇博文中,我们会学习如何安装 Cockpit 并用它管理我们的运行着 Fedora、CentOS、Arch Linux 以及 RHEL 发行版操作系统的服务器。下面是 Cockpit 在我们的 GNU/Linux 服务器中一些非常棒的功能:

  1. 它包含 systemd 服务管理器。
  2. 有一个用于故障排除和日志分析的 Journal 日志查看器。
  3. 包括 LVM 在内的存储配置比以前任何时候都要简单。
  4. 用 Cockpit 可以进行基本的网络配置。
  5. 可以轻松地添加和删除用户以及管理多台服务器。

1. 安装 Cockpit

首先,我们需要在我们基于 linux 的服务器上安装 Cockpit。大部分发行版的官方软件仓库中都有可用的 cockpit 安装包。这篇博文中,我们会在 Fedora 22、CentOS 7、Arch Linux 和 RHEL 7 中通过它们的官方软件仓库安装 Cockpit。

CentOS / RHEL

CentOS 和 RHEL 官方软件库中有可用的 Cockpit。我们只需要用 yum 管理器就可以安装。只需要以 sudo/root 权限运行下面的命令就可以安装它。

# yum install cockpit

Centos 上安装 Cockpit

Fedora 22/21

和 CentOS 一样, Fedora 的官方软件库默认也有可用的 Cockpit。我们只需要用 dnf 软件包管理器就可以安装 Cockpit。

# dnf install cockpit

Fedora 上安装 Cockpit

Arch Linux

现在 Arch Linux 官方软件库中还没有可用的 Cockpit,但 Arch 用户库(Arch User Repository,AUR)有。只需要运行下面的 yaourt 命令就可以安装。

# yaourt cockpit

Arch linux 上安装 Cockpit

2. 启动并启用 Cockpit

成功安装完 Cockpit,我们就要用服务/守护进程管理器启动 Cockpit 服务。到了 2015 年,尽管一些 linux 发行版仍然运行 SysVinit 管理守护进程,但大部分 linux 发行版都采用了 Systemd,Cockpit 使用 systemd 完成从运行守护进程到服务几乎所有的功能。因此,我们只能在运行着 Systemd 的最新的 linux 发行版中安装 Cockpit。要启动 Cockpit 并让它在每次系统重启时自动启动,我们需要在终端或控制台中运行下面的命令。

# systemctl start cockpit

# systemctl enable cockpit.socket

Created symlink from /etc/systemd/system/sockets.target.wants/cockpit.socket to /usr/lib/systemd/system/cockpit.socket.

3. 允许通过防火墙

启动 Cockpit 并使得它能在每次系统重启时自动启动后,我们现在要给它配置防火墙。由于我们的服务器上运行着防火墙程序,我们需要允许它通过某些端口使得从服务器外面可以访问 Cockpit。

Firewalld

# firewall-cmd --add-service=cockpit --permanent

success

# firewall-cmd --reload

success

允许 Cockpit 通过 Firewalld

Iptables

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

# service iptables save

4. 访问 Cockpit Web 界面

下面,我们终于要通过 web 浏览器访问 Cockpit web 界面了。根据配置,我们只需要用浏览器打开 https://ip-address:9090https://server.domain.com:9090。在我们这篇博文中,我们用浏览器打开 https://128.199.114.17:9090,正如下图所示。

通过 SSL 访问 Cockpit Web 服务

此时会出现一个 SSL 认证警告,因为我们正在使用一个自签名认证。我们只需要忽略这个警告并进入到登录页面,在 chrome/chromium 中,我们需要点击 Show Advanced 然后点击 Proceed to 128.199.114.17 (unsafe)

Cockpit 登录界面

现在,要进入仪表盘,我们需要输入详细的登录信息。这里,用户名和密码和用于登录我们的 linux 服务器的用户名和密码相同。当我们输入登录信息并点击 Log In 按钮后,我们就会进入到 Cockpit 仪表盘。

Cockpit 仪表盘

这里我们可以看到所有的菜单以及 CPU、磁盘、网络、存储使用情况的可视化结果。仪表盘正如上图所示。

服务

要管理服务,我们需要点击 web 页面右边菜单中的 Services 按钮。然后,我们会看到服务被分成了 5 个类别,目标、系统服务、套接字、计时器和路径。

Cockpit 服务

Docker 容器

我们甚至可以用 Cockpit 管理 docker 容器。用 Cockpit 监控和管理 Docker 容器非常简单。由于我们的服务器中没有安装运行 docker,我们需要点击 Start Docker。

Cockpit 容器

Cockpit 会自动在我们的服务器上安装和运行 docker。启动之后,我们就会看到下面的截图。然后我们就可以按照需求管理 docker 镜像、容器。

Cockpit 容器管理

Journal 日志查看器

Cockpit 有个日志查看器,它把错误、警告、注意分到不同的标签页。我们也有一个 All 标签页,在这里可以看到所有的日志信息。

Cockpit Journal 日志

网络

在网络部分,我们可以看到两个可视化发送和接收速度的图。我们可以看到这里有一个可用网卡的列表,还有 Add Bond、Bridge、VLAN 的选项。如果我们需要配置一个网卡,我们只需要点击网卡名称。在下面,我们可以看到网络的 Journal 日志信息。

Cockpit Network

存储

现在,用 Cockpit 可以方便地查看硬盘的读写速度。我们可以查看存储的 Journal 日志以便进行故障排除和修复。在页面中还有一个已用空间的可视化图。我们甚至可以卸载、格式化、删除一块硬盘的某个分区。它还有类似创建 RAID 设备、卷组等攻能。

Cockpit Storage

用户管理

通过 Cockpit Web 界面我们可以方便地创建新用户。在这里创建的账户会应用到系统用户账户。我们可以用它更改密码、指定角色、以及删除用户账户。

Cockpit Accounts

实时终端

Cockpit 还有一个很棒的特性。是的,我们可以执行命令,用 Cockpit 界面提供的实时终端执行任务。这使得我们可以根据我们的需求在 web 界面和终端之间自由切换。

Cockpit 终端

总结

Cockpit 是由 Red Hat 开发的使得管理服务器变得轻松简单的自由开源软件。它非常适合于进行简单的系统管理任务和新手系统管理员。它仍然处于开发阶段,还没有稳定版发行。因此不适合于生产环境。它是针对最新的默认安装了 systemd 的 Fedora、CentOS、Arch Linux、RHEL 系统开发的。如果你想在 Ubuntu 上安装 Cockpit,你可以通过 PPA 访问,但现在已经过期了。如果你有任何疑问、建议,请在下面的评论框中反馈给我们,这样我们可以改进和更新我们的内容。非常感谢 !


via: http://linoxide.com/linux-how-to/install-cockpit-fedora-centos-rhel-arch-linux/

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

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