分类 技术 下的文章

Rainloop是一个使用PHP编写的,开源免费的网页邮件客户端。他支持包括Google、Yahoo、OutLook在内的主流的邮件服务器,当然,他也支持你自己的本地邮件服务器。它看起来大致就像使用IMAP和SMTP协议的MUA(邮件客户端)一样。

RainLoop 示例

可以看一下RainLoop作者安装的演示页面: http://demo.rainloop.net/

在Arch Linux上安装RainLoop

在Arch Linux上安装RainLoop

一旦在您的服务器部署上Rainloop,剩余要做的唯一的事情是通过Web浏览器访问您的Rainloop,并提供你正在使用的邮件服务器信息。

本教程包含了在 Arch Linux上的Rainloop 网页客户端的安装流程,包括如何进行配置 ApacheNginx, 当然本教程使用修改Hosts的方式,从而避免了DNS的访问。

If you also need references on installing Rainloop on Debian and Red Hat systems visit the previous RainLoop Webmail article at.

如果你还是需要一篇在DebianRed Hat 安装 RainLoop Webmail 的教程,你可以看这篇文章:

以及在 Ubuntu 服务器中安装 RainLoop Webmail 的教程,你可以看这篇文章:

系统要求

对 Nginx

对 Apache

Step 1:在 Nginx 或者 Apache 上创建虚拟主机

1. 假设你已经如上面介绍的链接所述,配置好了您的服务器(NginxApache),你需要做的第一件事是在Hosts文件里创建一个原始解析记录,以指向的Arch Linux系统的IP。

对于Linux系统,修改 /etc/hosts 文件并且在你的localhost条目之下添加 Rainloop 的虚拟域。如下:

127.0.0.1   localhost.localdomain  localhost     rainloop.lan
192.168.1.33    rainloop.lan

Add Domain Host Entry

添加域信息

如果是Windows系统,则修改 C:\Windows\System32\drivers\etc\hosts 并且将接下来的内容添加到你的文件里:

192.168.1.33       rainloop.lan

2. 使用 ping 命令确认本地的 Rainloop 域名创建成功之后,然后在 ApacheNginx 中创建所需的 虚拟主机SSL 配置。

Nginx 虚拟主机

/etc/nginx/sites-available/ 目录下使用如下命令创建一个名叫rainloop.lan的文件:

$ sudo nano /etc/nginx/sites-available/rainloop.conf

添加如下的文件内容:

server {
    listen 80;
    server_name rainloop.lan;

    rewrite        ^ https://$server_name$request_uri? permanent;
    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;
    root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
        root    /srv/www/rainloop/;
        expires 30d;
    }

    location / {
        index index.html index.htm index.php;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }

    location ^~ /data {
        deny all;
    }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

接下来创建SSL配置文件:

$ sudo nano /etc/nginx/sites-available/rainloop-ssl.conf

添加如下内容:

server {
    listen 443 ssl;
    server_name rainloop.lan;

    ssl_certificate     /etc/nginx/ssl/rainloop.lan.crt;
    ssl_certificate_key  /etc/nginx/ssl/rainloop.lan.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;

    root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
        root    /srv/www/rainloop/;
        expires 30d;
    }

    location ^~ /data {
        deny all;
    }

    location / {
        index index.html index.htm index.php;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

接下来将会自动生成CertificateKeys文件,然后在文件中叫Common Name*的证书里中添加您的虚拟域名( rainloop.lan**)。

$ sudo nginx_gen_ssl.sh

生成证书和密钥

生成证书和SSL密钥后,创建Rainloop Web服务器的文件路径(Rainloop PHP文件所在的位置),然后启用虚拟主机,并重新启动Nginx的守护进程,应用配置。

$ sudo mkdir -p /srv/www/rainloop
$ sudo n2ensite rainloop
$ sudo n2ensite rainloop-ssl
$ sudo systemctl restart nginx

Create RainLoop Web Director

创建RainLoop 网页向导

Apache 虚拟主机

/etc/httpd/conf/sites-available/中创建 rainloop.conf文件:

$ sudo nano /etc/httpd/conf/sites-available/rainloop.conf

添加如下内容:

<VirtualHost *:80>
    ServerName rainloop.lan
    DocumentRoot "/srv/www/rainloop/"
    ServerAdmin [email protected]
    ErrorLog "/var/log/httpd/rainloop-error_log"
    TransferLog "/var/log/httpd/rainloop-access_log"
    <Directory />
        Options +Indexes +FollowSymLinks +ExecCGI
        AllowOverride All
        Order deny,allow
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

Create Apache Virtual Host

创建Apache虚拟主机

为Apache添加SSL支持:

$ sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf

添加如下文件内容:

<VirtualHost *:443>
    ServerName rainloop.lan
    DocumentRoot "/srv/www/rainloop/"
    ServerAdmin [email protected]
    ErrorLog "/var/log/httpd/rainloop-ssl-error_log"
    TransferLog "/var/log/httpd/rainloop-ssl-access_log"

    SSLEngine on
    SSLCertificateFile "/etc/httpd/conf/ssl/rainloop.lan.crt"
    SSLCertificateKeyFile "/etc/httpd/conf/ssl/rainloop.lan.key"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0

    CustomLog "/var/log/httpd/ssl_request_log" \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    <Directory />
        Options +Indexes +FollowSymLinks +ExecCGI
        AllowOverride All
        Order deny,allow
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

接下来将会自动生成CertificateKeys文件,然后在文件中叫Common Name*的证书里中添加您的虚拟域名( rainloop.lan**)。

$ sudo apache_gen_ssl

Create SSL Certificate and Keys

创建SSL证书和密钥

Enter Organization Details

输入组织信息

After the Certificate and SSL keys are created, add Rainloop DocumentRoot path, then enable Virtual Hosts and restart Apache daemon to apply configurations. 在证书和密钥建立之后,创建 RainLoop 的 DocumentRoot 所指向的目录,之后激活虚拟主机,并且重启Apache应用设置。

$ sudo mkdir -p /srv/www/rainloop
$ sudo a2ensite rainloop
$ sudo a2ensite rainloop-ssl
$ sudo systemctl restart httpd

Enable Virtual Hosts

激活虚拟主机

Step 2: 添加必要的PHP支持

3. 无论您使用的是ApacheNginxWeb服务器,您需要激活php.ini文件下中的PHP扩展,并将新服务器的DocumentRoot目录放到 open\_basedir 配置中。

$ sudo nano /etc/php/php.ini

找到并且取消如下的PHP扩展的注释(LCTT译注,即启用这些模块):

extension=iconv.so
extension=imap.so
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so ( 注:启用 IMAPS 和 SMTP SSL protocols)
extension=pdo_mysql.so

open\_basedir语句应该看起来类似如下:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

4. 在修改好php.ini之后,重启你的服务器,然后检查 phpinfo() 输出,去看看SSL协议是否已经激活。

----------对于 Apache Web 服务器----------
$ sudo systemctl restart httpd

----------对于 Nginx Web 服务器----------
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

Check PHP Information

查看 PHP 信息

Step 3: 下载和安装 RainLoop Webmail

5.现在可以从官方网站下载Rainloop应用并解压缩到文档根目录了,但是需要首先安装wget的unzip程序(LCTT译注,如果你已经有了可以忽略此步)。

$ sudo pacman -S unzip wget

6. 使用wget命令或通过使用浏览器访问http://rainloop.net/downloads/下载最新的源码包Rainloop 压缩包。

$ wget http://repository.rainloop.net/v1/rainloop-latest.zip

Download RainLoop Package

下载 RainLoop 包

7. 下载过程完成后,解压Rainloop压缩包到虚拟主机文档根目录路径( /srv/www/rainloop/ )。

$ sudo unzip rainloop-latest.zip -d  /srv/www/rainloop/

Extract Rainloop Archive

解压

8. 然后设置应用程序的默认路径下的权限。

$ sudo chmod -R 755 /srv/www/rainloop/
$ sudo chown -R http:http /srv/www/rainloop/

Set Permission on RainLoop

设置权限

Step 4: 通过网页配置RainLoop

9. Rainloop应用程序可以通过两种方式进行配置:使用浏览器或者系统shell。如果要在终端配置就打开和编辑位于/ srv/www/rainloop/data/datada047852f16d2bc7352b24240a2f1599/default/configs/ 的application.ini**文件。

10. 若要从浏览器访问管理界面,使用下面的URL地址 https://rainloop.lan/?admin,然后提供输入默认的应用程序用户名密码,如下:

User = admin
Password = 12345

Rainloop Web Interface

Rainloop Web 界面

11. 首次登录后,你会被警示需要更改默认密码,所以我劝你做这一点。

Change Default Password

修改默认 Password

Set New Admin Password

设置新的 Admin Password

12. 如果您要启用Contact(联系人)功能,就登录到MySQL数据库并创建一个新的数据库及其用户,然后提供在Contacts字段里面输入数据库信息。

mysql -u root -p
create database if not exists rainloop;
create user rainloop_user@localhost identified by “password”;
grant all privileges on rainloop.* to rainloop_user@localhost;
flush privileges;
exit;

Enable Contacts in RainLoop

在 RainLoop 中激活联系人

Enter Contact Database Details

添加联系人数据库配置

13. 默认情况下Rainloop提供了** GmailYahooOutlook**的邮件服务器的配置文件,但是你如果愿意,你也可以添加其他的邮件服务器域。

Default Mail Domains

默认 Mail 域

Add New Domain

添加新域

14. 登录你的邮件服务器,访问 https://rainloop.lan,并提供您的域名服务器验证信息。

Login to Mail Domain

登录到Yahoo邮件页面

Login to Gmail Domain

登录Gmail

RainLoop Email Interface

RainLoop 登录后的Email 界面

想要了解更多的文件,可以访问:http://rainloop.net/docs/.

通过Rainloop你可以从浏览器中访问具有Internet连接的任何邮件服务器。唯一的缺憾就是在Arch Linux下使用Rainloop应用的话,少一个修改电子邮件帐户密码的poppassd插件包。


via: http://www.tecmint.com/install-rainloop-webmail-in-arch-linux/

译者:MikeCoder 校对:wxy

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

一个读者发来的问题:在Ubuntu 14.04系统中,我如何从Unity启动器上移除这些盘符图标?我从来不使用它,然而它占用着启动器的位置。

默认情况下,无论你挂载与否,系统上所有分区的盘符图标都会显示在Unity启动器上。事实上它可能会使 Unity 启动器的位置变得拥挤。刚刚接触 Ubuntu 的小白可能对如何将这些盘符移去感觉比较困扰,但是实际上这很容易。

要从Ubuntu 14.04系统的Untiy启动器上永久地移除盘符图标,右键点击盘符,然后选择"Unlock from Launcher"即可。

Remove drive cons from Ubuntu 14.04 unity launcher

就这样。你不需要做更多操作了。即使分区被挂载,在Unity启动器上你再也看不到盘符图标了。我希望这能帮到你。如果你有任何问题可以随时问我。


via: http://itsfoss.com/remove-drive-icons-from-unity-launcher-in-ubuntu/

译者:lousam 校对:wxy

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

Bacula是一个开源网络备份解决方案,允许你在本地或者远程计算机组上备份或者还原数据。配置与安装很容易,并支持许多高级存储管理特性。

本教程中,让我们来学习一下如何在Ubuntu 14.04服务器上安装和配置Bacula。我的机器的IP是192.168.1.250/24,主机名是server.unixmen.local。现在让我们进入教程吧。

安装 Bacula

Bacula使用SQL数据库管理它的信息。我们可以使用MySQL或者PostgreSQL数据库。本篇教程中,我使用MySQL。

输入下面的命令安装MySQL服务器。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mysql-server

在安装MySQL的过程中,可能提示需要输入数据库管理员密码。输入密码后按下OK。

重新输入密码:

现在使用下面的命令安装bacula:

sudo apt-get install bacula-server bacula-client

Bacula默认使用Postfix MTA。安装过程中,你会被要求配置Postfix。

选择Internet站点并点击OK。

输入服务器完整域名(FQDN):

现在输入yes用dbconfig-common来配置Bacula数据库。

输入MySQL数据库管理员密码:

设置数据库的bacula-director-mysql用户的密码。如果留空不输入,会生成一个随机密码。

重新输入密码:

创建备份与还原目录

现在,让我们创建备份与还原目录。

sudo mkdir -p /mybackup/backup /mybackup/restore

设置上面目录的权限与所属用户/组:

sudo chown -R bacula:bacula /mybackup/
sudo chown -R 700 /mybackup/

配置 Bacula

Bacula有很多配置文件需要我们配置。

更新 Bacula Director 配置:

sudo vi /etc/bacula/bacula-dir.conf

找到下面的字段,并更新还原路径。本篇中,** /mybackup/restore**是我的还原位置。

[...]
Job {
  Name = "RestoreFiles"
  Type = Restore
  Client=server-fd
  FileSet="Full Set"
  Storage = File
  Pool = Default
  Messages = Standard
  Where = /mybackup/restore
}
[...]

滚动到“list of files to be backed up”字段,并设置备份的目录。本篇教程中,我希望备份“/home/sk”目录。所以我把这个目录包含进了“File”参数中。

[...]

#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
    File = /home/sk
  }
[...]

继续向下滚动,找到Exclude 字段,设置排除在备份目录外的目录列表。这里,我排除了目录/mybackup

[...]

# If you backup the root directory, the following two excluded
#   files can be useful
#
  Exclude {
    File = /var/lib/bacula
    File = /nonexistant/path/to/file/archive/dir
    File = /proc
    File = /tmp
    File = /.journal
    File = /.fsck
    File = /mybackup
  }
}
[...]

保存并关闭文件。

更新 Bacula 存储守护进程设置:

编辑 /etc/bacula/bacula-sd.conf

sudo vi /etc/bacula/bacula-sd.conf

设置备份目录位置,也就是本篇中的/mybackup/backup

[...]

Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /mybackup/backup
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}
[...]

现在如下检查是否所有的配置是有效的。如果下面的命令没有显示,那么配置就是有效的。

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
sudo bacula-sd -tc /etc/bacula/bacula-sd.conf

一旦你完成所有的设置,重启所有的bacula服务。

sudo /etc/init.d/bacula-director restart
sudo /etc/init.d/bacula-fd restart
sudo /etc/init.d/bacula-sd restart

就是这样。现在,bacula已经成功安装与配置了。

使用Webmin 管理 Bacula

使用命令行管理Bacula是有点困难的。所以我们使用一个图形化的管理工具“webmin”来简化我们的任务。

使用下面的命令在Ubuntu 14.04上安装Webmin。

现在使用URL https://ip-address:10000进入Webmin界面。在左边的窗格中进入系统标签并点击模块配置链接。如果在系统下没有找到它,在未使用模块一栏中查找。

在数据库一栏中选择MySQL数据库。输入MySQL管理员密码,并点击保存。

就是这样。现在你可以在webmin中简单地配置Bacula了。开始加入备份客户端,磁盘卷和计划任务吧。

干杯!


via: http://www.unixmen.com/setup-backup-server-using-bacula-webmin-ubuntu-14-04/

译者:geekpi 校对:wxy

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

逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

LVM使用分层结构,如下图所示。

图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

LVM测试说明

本文将介绍怎么在linux中创建和管理LVM卷。我们将会分成两个部分。第一个部分,我们首先要在一个硬盘上创建多个逻辑卷,然后将它们挂载在/lvm-mount目录。然后我们将要对创建好的卷调整大小。而第二部分,我们将会从另外一块硬盘增加额外的卷到LVM中。

准备磁盘分区

通过使用fdisk,创建磁盘分区。我们需要创建3个1G分区,注意,并不要求分区的大小一致。同样,分区需要使用‘8e’类型来使他们可用于LVM。

# fdisk /dev/sdb 

Command (m for help): n ## 新建
Command action
   e   extended
   p   primary partition (1-4)
p ## 主分区

Partition number (1-4): 1 ## 分区号
First cylinder (1-1044, default 1):  ## 回车用默认的1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1G ## 大小

Command (m for help): t ## 改变类型
Selected partition 1
Hex code (type L to list codes): 8e ## LVM 的分区代码
Changed system type of partition 1 to 8e (Linux LVM)

重复上面的操作来创建其他两个分区。分区创建完成后,我们应该有类似如下的输出:

# fdisk -l 

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  8e  Linux LVM
/dev/sdb2             133         264     1060290   8e  Linux LVM
/dev/sdb3             265         396     1060290   8e  Linux LVM

准备物理卷(PV)

刚创建的分区是用来储存物理卷的。LVM可以使用不同大小的物理卷。

# pvcreate /dev/sdb1
# pvcreate /dev/sdb2
# pvcreate /dev/sdb3 

使用下列命令检查物理卷的创建情况。下面截取部分输出。"/dev/sdb2"是一个新的"1.01 GiB"物理卷。

# pvdisplay 

  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name
  PV Size               1.01 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               jszvzz-ENA2-g5Pd-irhV-T9wi-ZfA3-0xo092

使用下列命令可以删除物理卷。

# pvremove /dev/sdb1 

准备卷组(VG)

下列命令用来创建名为'volume-group1'的卷组,使用/dev/sdb1, /dev/sdb2 和 /dev/sdb3创建。

# vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3

使用下列命令可以来验证卷组。

# vgdisplay 

  --- Volume group ---
  VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               3.02 GiB
  PE Size               4.00 MiB
  Total PE              774
  Alloc PE / Size       0 / 0
  Free  PE / Size       774 / 3.02 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

从输出中,我们可以看见卷组的使用量/总量。物理卷给卷组提供空间。只要在这个卷组中还有可用空间,我们就可以随意创建逻辑卷。

使用下列命令删除卷组。

# vgremove volume-group1 

创建逻辑卷(LV)

下列命令创建一个名为'1v1'、大小为100MB的逻辑卷。我们使用小分区减少执行时间。这个逻辑卷使用之前创建的卷组的空间。

# lvcreate -L 100M -n lv1 volume-group1 

逻辑卷可使用lvdisplay命令查看。

# lvdisplay 

  --- Logical volume ---
  LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                YNQ1aa-QVt1-hEj6-ArJX-I1Q4-y1h1-OFEtlW
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

现在逻辑卷已经准备好了,我们可以格式化和挂载逻辑卷,就像其它ext2/3/4分区一样!

# mkfs.ext4 /dev/volume-group1/lv1
# mkdir /lvm-mount
# mount /dev/volume-group1/lv1 /lvm-mount/ 

一旦逻辑卷挂载,我们就可以到挂载点 /lvm-mount/ 上读写了。要创建和挂载其它的逻辑卷,我们重复这个过程。

最后,使用lvremove我们可以删除逻辑卷。

# umount /lvm-mount/
# lvremove /dev/volume-group1/lv1 

扩展一个LVM卷

调整逻辑卷大小的功能是LVM最有用的功能。这个部分会讨论我们怎么样扩展一个存在的逻辑卷。下面,我们将会扩展先前创建的逻辑卷‘lv1’扩大到200MB。

注意,调整逻辑卷大小之后,也需要对文件系统调整大小进行匹配。这个额外的步骤各不相同,取决于创建文件系统的类型。在本文中,我们使用'lv1'创建了ext4类型的文件系统,所以这里的操作是针对ext4文件系统的。(ext2/3文件系统也类同)。命令的执行顺序是很重要的。

首先,我们卸载掉lv1卷

# umount /lvm-mount/ 

然后,设置卷的大小为200M

# lvresize -L 200M /dev/volume-group1/lv1 

接下来,检查磁盘错误

# e2fsck -f /dev/volume-group1/lv1 

运行以下命令扩展文件系统以后,ext4信息就更新了。

# resize2fs /dev/volume-group1/lv1 

现在,这个逻辑卷应该已经扩展到200MB了。我们检查LV的状态来验证。

# lvdisplay 

  --- Logical volume ---
  LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

现在,这个逻辑卷可以再次挂载,同样这个方法也可用于其他分区。

缩减一个LVM卷

这章节介绍缩减LVM卷大小的方法。命令的顺序同样重要。并且,下列命令对ext2/3/4文件系统同样有效。

注意减少逻辑卷的大小值若小于储存的数据大小,存储在后面的数据会丢失。

首先,卸载掉卷。

# umount /dev/volume-group1/lv1

然后,检测磁盘错误。

# e2fsck -f /dev/volume-group1/lv1 

接下来缩小文件系统,更新ext4信息。

# resize2fs /dev/volume-group1/lv1 100M 

完成以后,减少逻辑卷大小

# lvresize -L 100M /dev/volume-group1/lv1 
WARNING: Reducing active logical volume to 100.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv1? [y/n]: y Reducing logical volume lv1 to 100.00 MiB Logical volume lv1 successfully resized

最后,验证调整后的逻辑卷大小。

# lvdisplay 

--- Logical volume ---
  LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

扩展一个卷组

本节将讨论扩展卷组的方法,将一个物理卷添加到卷组。让我们假设我们的卷组'volume-group1'已经满了,需要扩大。手上的硬盘(sdb)已经没有其他空闲分区,我们添加了另外一个硬盘(sdc)。我们将看到如何把sdc的分区添加到卷组以扩展。

检测现在卷组状态

# vgdisplay volume-group1 

 --- Volume group ---
  VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               3.02 GiB
  PE Size               4.00 MiB
  Total PE              774
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       749 / 2.93 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

首先,我们创建一个2GB分区sdc1,类型为LVM(8e),如教程前所述。

# fdisk /dev/sdc 

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

然后,我们创建一个物理卷 /dev/sdc1

# pvcreate /dev/sdc1 

现在,物理卷已经准备好了,我们可以简单地将它增加到已存在的卷组'volume-group1'上。

# vgextend volume-group1 /dev/sdc1 

使用vgdisplay来验证(可以看到卷组大小已经增大)。

# vgdisplay 

  --- Volume group ---
  VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               5.03 GiB
  PE Size               4.00 MiB
  Total PE              1287
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       1262 / 4.93 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

注意,尽管我们使用一个单独的磁盘做示范,其实只要是‘8e’类型的磁盘分区都可以用来扩展卷组。

总结一下,LVM是一个非常给力的工具,用来创建和管理可变大小的分区。本文中,我们已经介绍了动态分区如何在LVM中创建和使用。我们也介绍了扩展/缩小逻辑卷和卷组的方法,和如何增加一个新的磁盘到LVM。

希望对你有帮助。


via: http://xmodulo.com/2014/05/use-lvm-linux.html

译者:Vic\_\_\_ 校对:wxy

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

dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。

dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。

dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。这样更好地避免了信息混乱和误报。更重要的是,它可以让你更容易编写插件来收集你想要的数据信息,以从未有过的方式进行扩展。

Dstat的默认输出是专门为人们实时查看而设计的,不过你也可以将详细信息通过CSV输出到一个文件,并导入到Gnumeric或者Excel生成表格中。

特性

  • 结合了vmstat,iostat,ifstat,netstat以及更多的信息
  • 实时显示统计情况
  • 在分析和排障时可以通过启用监控项并排序
  • 模块化设计
  • 使用python编写的,更方便扩展现有的工作任务
  • 容易扩展和添加你的计数器(请为此做出贡献)
  • 包含的许多扩展插件充分说明了增加新的监控项目是很方便的
  • 可以分组统计块设备/网络设备,并给出总数
  • 可以显示每台设备的当前状态
  • 极准确的时间精度,即便是系统负荷较高也不会延迟显示
  • 显示准确地单位和和限制转换误差范围
  • 用不同的颜色显示不同的单位
  • 显示中间结果延时小于1秒
  • 支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形

安装方法

Ubuntu/Mint和Debin系统:

本地软件库中有相关安装包,你可以用下面命令安装:

# sudo apt-get install dstat

RHEL/Centos和Fedora系统:

你可以在romforge软件库中添加有相关安装包,参照指导,使用如下命令很简单就能进行安装:

# yum install dstat

ArchLinux系统:

相关软件包在社区资源库中,你可以用这个命令来安装:

# pacman -S dstat

使用方法

dstat的基本用法就是输入dstat命令,输出如下:

这是默认输出显示的信息:

CPU状态:CPU的使用率。这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。

磁盘统计:磁盘的读写操作,这一栏显示磁盘的读、写总数。

网络统计:网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。

分页统计:系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值是0 0。

系统统计:这一项显示的是中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。

默认情况下,dstat每秒都会刷新数据。如果想退出dstat,你可以按"CTRL-C"键。

需要注意的是报告的第一行,通常这里所有的统计都不显示数值的。

这是由于dstat会通过上一次的报告来给出一个总结,所以第一次运行时是没有平均值和总值的相关数据。

但是dstat可以通过传递2个参数运行来控制报告间隔和报告数量。例如,如果你想要dstat输出默认监控、报表输出的时间间隔为3秒钟,并且报表中输出10个结果,你可以运行如下命令:

dstat 3 10

在dstat命令中有很多参数可选,你可以通过man dstat命令查看,大多数常用的参数有这些:

  • -l :显示负载统计量
  • -m :显示内存使用率(包括used,buffer,cache,free值)
  • -r :显示I/O统计
  • -s :显示交换分区使用情况
  • -t :将当前时间显示在第一行
  • –fs :显示文件系统统计数据(包括文件总数量和inodes值)
  • –nocolor :不显示颜色(有时候有用)
  • –socket :显示网络统计数据
  • –tcp :显示常用的TCP统计
  • –udp :显示监听的UDP接口及其当前用量的一些动态数据

当然不止这些用法,dstat附带了一些插件很大程度地扩展了它的功能。你可以通过查看/usr/share/dstat目录来查看它们的一些使用方法,常用的有这些:

  • -–disk-util :显示某一时间磁盘的忙碌状况
  • -–freespace :显示当前磁盘空间使用率
  • -–proc-count :显示正在运行的程序数量
  • -–top-bio :指出块I/O最大的进程
  • -–top-cpu :图形化显示CPU占用最大的进程
  • -–top-io :显示正常I/O最大的进程
  • -–top-mem :显示占用最多内存的进程

举一些例子:

查看全部内存都有谁在占用:

dstat -g -l -m -s --top-mem

显示一些关于CPU资源损耗的数据:

dstat -c -y -l --proc-count --top-cpu

如何输出一个csv文件

想输出一个csv格式的文件用于以后,可以通过下面的命令:

# dstat –output /tmp/sampleoutput.csv -cdn

via: http://linuxaria.com/howto/linux-terminal-dstat-monitoring-tools

译者:disylee 校对:wxy

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

有很多使用命令行的理由。正如我们在issue 3 of Linux Voice中展示的那样,它是与你的计算机交互的最强大和简明的方法。但是,我们还是先来看一下命令行的一些隐晦的使用场景(或许有些人会觉得没有意义)。

(LCTT译注,以下视频可能会比较慢,请耐心等一下。)

浏览网页

Firefox和Chromium都是很好的浏览器,但是你有没有发现它们有点太图形化了?没有?看一下下面的视频,我们使用elinks web浏览器显示了与黑客相关的新闻。界面可能没有其他浏览器好看,但是它的目标是显示绝大多数的web页面!

作为一个极客,当你只有SSH连接方式时,需要快速检查一下能否访问网页时,这将是一个很便利的方法。

在维基百科上查找想要的信息

是的,上面我们已经提到了使用Web,但是web不是查看维基百科的唯一方式。David Leadbeater已经构建了一个将维基百科的内容放入DNS记录的DNS服务器。这能够让你使用像dig这样的命令行工具来抓取你想要的信息。

看电影

当你想要看《星球大战 4 :新的希望》时,不再需要使用Netflix或者YouTube,只要在你的终端中直接telnet towel.blinkenlights.nl就行了。

玩游戏

再Steam来之前Linux下就有许多游戏,并且很多都不需要图形界面,比如NetHack、Robots和Greed。下面是Moon Buggy的一个演示:

LCTT译注:大家注意到这篇文章中的视频了么?不是通常的FLA,也不是MP4、AVI。而是一个专门演示脚本“功夫”的一个网站提供的:http://shelr.tv/ ,欢迎大家也去演练下你的脚本功夫吧!

LCTT译注:为了正常呈现,我专门临时打开了网站对IFRAME的限制。。。


via: http://www.linuxvoice.com/commandline-secrets/

译者:johnhoow 校对:wxy

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