在 CentOS 7.x 中可以用 nmcli(Network Manager Command Line Interface:网络管理命令行接口)进行网卡绑定。

多网卡的7种bond模式原理请参考:http://support.huawei.com/huaweiconnect/enterprise/thread-282727.html

官方文档:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-Network_Bonding_Using_the_NetworkManager_Command_Line_Tool_nmcli.html

继续阅读

在生产环境中有时候会经常碰到不能停机维护的情况,或停机窗口时间不够用,比如希望更换存储系统,几十个T或更大的数据,在半天内是迁移不完的,那这个时候就只能在线做了。

下面测试使用LVM的物理卷迁移的方式来在线迁移数据:

1) 物理机已分配2块硬盘sdc,sdd

[root@test-204 ~]# fdisk -l
Disk /dev/sdd: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

继续阅读

最近发现公司之前申请的SSL证书是tomcat使用的jks格式的私key,但是我现在要放到nginx上使用,所以需要把jks格式的证书转base64的私key格式证书。

网上找了一些资料:

JKS(Java KeyStore)是Java的一个证书仓库,包括授权整数和公钥整数等。JDK提供了一个工具keytool用于管理keystore。转换步骤:

1.使用keytool导出成PKCS12格式:

# keytool -importkeystore -srckeystore server.jks -destkeystore server.p12 -srcstoretype jks -deststoretype pkcs12
输入目标密钥库口令:  
再次输入新口令:
输入源密钥库口令:  
已成功导入别名 ca_root 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消

2. 生成pem证书(包含了key,server证书和ca证书):

继续阅读

有些合作方需要我们提供sftp服务帐号来交换信息,linux自带的sftp开出去不是很安全,网上找了一下,发现了MySecureShell这个东东作sftp服务器非常不错。

1. 安装
下载页:http://mysecureshell.sourceforge.net/en/download.html

wget http://mysecureshell.free.fr/repository/index.php/centos/6.4/mysecureshell-1.33-1.x86_64.rpm
rpm -ivh mysecureshell-1.33-1.x86_64.rpm

2. 配置继续阅读

我想做技术的或多或少都会知道dnsmasq,因为基本上所有的家用路由都内置了它,使用他来做域名服务的缓存代理。

仔细研究你会发现,除了缓存代理的基本功能之外,它修改dns记录的功能也很有意思。看看下面:

1. 安装dnsmasq:

在centos linux上的,可以直接yum安装:

yum install -y dnsmasq

2. 配置dnsmasq:
vim /etc/dnsmasq.conf
#监听所有网卡
bind-interfaces
#修改A记录
address=/www.163.com/1.2.3.4
#修改mx记录
mx-host=126.com,m.126.com,10
mx-host=163.com,m.163.com,10

继续阅读

AWS EC2上配置ftp服务器有它特殊的地方:

1. 理论上来说,EC2的机器是在内网,机器上只有内网IP.外网IP是映射到内网IP上的。

2. 有安全组,相当于带了一个防火墙。

一般的vsftpd配置文件是下面这样的:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

use_localtime=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_min_port=2000
pasv_max_port=3000
继续阅读

执行yum -y update报错:pkgKey 1445 doesn’t exist in repo base.

系统提示进行如下操作:

package-cleanup –problems
package-cleanup –dupes
rpm -Va –nofiles –nodigest

但其实没有作用,真正有用的是下面两个命令:

yum clean all
yum clean metadata

把缓存清理一下,然后再:

yum -y update

就好了。

mctop 与 top 相似,主要用于监视 Memcache 的流量,包括 key 的调用次数、对象存储大小、每秒的请求数、以及消耗的网络带宽等。

源代码:https://github.com/etsy/mctop

1)安装:

 
[root@memcache2 mctop]# yum install libpcap-devel ruby-devel rubygems git
[root@memcache2 mctop]# gem install ruby-pcap -v '0.7.8'
[root@memcache2 mctop]# gem install bundle 
[root@memcache2 mctop]# gem install rake

[root@memcache2 mctop]# git clone git://github.com/etsy/mctop.git

[root@memcache2 mctop]# cd mctop/
[root@memcache2 mctop]# bundle install
[root@memcache2 mctop]# rake install

2)运行

 
[root@memcache2 mctop]# mctop -h
Usage: mctop [options]
    -i, --interface=NIC              Network interface to sniff (required)
    -p, --port=PORT                  Network port to sniff on (default 11211)
    -d, --discard=THRESH             Discard keys with request/sec rate below THRESH
    -r, --refresh=MS                 Refresh the stats display every MS milliseconds
    -h, --help                       Show usage info

[root@memcache2 mctop]# mctop -i bond0 -p 11211

大致是这个样子:

今天机房网络出现问题,好了后发现svn一直连不上。查看日志发现有如下信息:

Aug 16 15:03:53 svnsh xinetd[19280]: EXIT: svn status=0 pid=29949 duration=1(sec)
Aug 16 15:04:27 svnsh xinetd[19280]: FAIL: svn per_source_limit from=112.64.23.235

网上查了一下,per_source_limit from=是xinetd的一个机制:

per_source

Takes an integer or “UNLIMITED” as an argument. This specifies the maximum instances of this service per source IP address. This can also be specified in the defaults section.

instances

determines the number of servers that can be simultaneously active for a service (the default is no limit). The value of this attribute can be either a number or UNLIMITED which means that there is no limit.

改成下面这样就好了,增加instances及instances:
继续阅读

我在打包时出错:

Processing files: php-debuginfo-5.3.10-1.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/php-5.3.10-1.x86_64
error: Installed (but unpackaged) file(s) found:
   /.channels/.alias/pear.txt
   /.channels/.alias/pecl.txt
   /.channels/.alias/phpdocs.txt
   /.channels/__uri.reg
   /.channels/doc.php.net.reg
   /.channels/pear.php.net.reg
   /.channels/pecl.php.net.reg
   /.depdb
   /.depdblock
   /.filemap
   /.lock

RPM build errors:
    Installed (but unpackaged) file(s) found:
   /.channels/.alias/pear.txt
   /.channels/.alias/pecl.txt
   /.channels/.alias/phpdocs.txt
   /.channels/__uri.reg
   /.channels/doc.php.net.reg
   /.channels/pear.php.net.reg
   /.channels/pecl.php.net.reg
   /.depdb
   /.depdblock
   /.filemap
   /.lock

网上查询,解决办法有:

1. 

在/usr/lib/rpm/macros文件中有一个定义:

%_unpackaged_files_terminate_build 1

把1改为0只警告

2. 

make install后删除这些文件:

rm -rf %{buildroot}
make INSTALL_ROOT=%{buildroot} install

rm -rf %{buildroot}/.channels/.alias/pear.txt %{buildroot}/.channels/.alias/pecl.txt %{buildroot}/.channels/__uri.reg %{buildroot}/.channels/pear.php.net.reg %{buildroot}/.channels/pecl.php.net.reg %{buildroot}/.depdb %{buildroot}/.depdblock %{buildroot}/.filemap %{buildroot}/.lock 

3.

把这些文件加进去

%files

%dir %{_prefix}/.channels

%dir %{_prefix}/.channels/.alias/

%{_prefix}/.channels/.alias/pear.txt