Centos 6 配置 NFS 注意事项


Centos6默认已经安装了NFS所需软件包,只是没有启动。

通过修改/etc/exports文件,设置NFS共享文件目录,

/nfsdata 10.32.0.22(rw,root_squash,sync) 10.32.0.23(rw,root_squash,sync)

重新载入exportfs

# exportfs -arv

然后重启nfs服务。

# service nfs start

以上几步虽然可以启动nfs服务,但是却存在一些问题,第一是nfs防火墙配置,nfs有一部分端口默认是动态的,需要设置为固定端口号;其次是nfs server默认通过文件的uid和gid判断当前用户是否具备文件读写权限。如果有多台服务器共享同一个目录,那么需要确保多台服务器访问共享路径的用户uid和gid相同,否则将提示权限错误。

设置固定端口号

# vim /etc/sysconfig/nfs

解开以下行的注释

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

重新启动nfs服务

# service nfs restart

配置防火墙

# vim /etc/sysconfig/iptables
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s 10.32.0.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT

重启防火墙

# service iptables restart

客户端挂载

# mount -t nfs 10.32.0.10:/nfsdata /mnt/nfsdata

确认两台nfs客户端的uid和gid一致,例如:

# id java

如果id不一致可以通过usermod和groupmod命令修改id,id修改之后,用户关联的文件需要重新设定用户和用户组

Advertisements

Subversion pre-commit hooks


pre-commit内容如下

#!/bin/sh

REPOS="$1"
TXN="$2"

# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | wc -c`

if [ "$LOGMSG" -lt 5 ];
then
  echo -e "***** Comment must be at least 5 characters. *****" 1>&2
  exit 1
fi# All checks passed, so allow the commit.
exit 0

添加完成之后需要修改文件具备执行权限,否则会提示

svn: Commit blocked by pre-commit hook (exit code 255) with no output.

通过SSH隧道安全连接vncserver


当前大部分Linux发行版中都能够安装vncserver,但是由于免费版的vncserver不支持加密协议连接,所以在internet上通过vnc管理服务器还是存在不安全的因素。

当然,可以购买vncserver企业版,下面的文章是介绍如何通过ssh协议在internet上建立加密通道。

首先需要配置vncserver监听localhost,配置文件如下:

VNCSERVERS="1:oracle"
VNCSERVERARGS[1]="-geometry 1366x768 -alwaysshared -localhost"

根据ssh客户端的不同,建立加密通道的方式也不同。

OpenSSH比较简单,一条命令即可搞定。

ssh -L 5901:127.0.0.1:5901 oracle@internet_ip

Putty客户端配置可以参考:Tunneling Tight-VNC over ssh using PuTTY截图。

最后连接的时候,在VNC Viewer中输入localhost:1即可连接internet_ip对应的5901端口。

需要注意的是,如果需要同时连接两个公网IP的5901地址,可以在创建ssh隧道的时候指定不同的本地端口。例如:

ssh -L 5901:127.0.0.1:5901 oracle@internet_ip1
ssh -L 5903:127.0.0.1:5901 oracle@internet_ip2

VNC Viewer中输入localhost:3将会连接internet_ip2的5901端口。

参考:How to use VNC over SSH tunnelling for secure remote graphical sessions

安装SVNManager注意事项


按照手册一路安装下来,最后碰到两个问题,第一个问题是SVN路径中包含中文,在设置用户和组权限的时候,中文全部乱码,编程\234?\344?这样子的形式。解决这个问题之后,在用户和组的权限管理时碰到了第二个问题,选择了中文目录后,跳转页面出现错误,显示拼接的svn路径在file前多了”\代码,导致svn命令不能正确识别该路径。

第一个问题,网上很多说是编码的问题,我修改为GBK,GB2312都未解决,最后通过分析代码的方式发现,在/usr/share/pear/VersionControl/SVN.php中672行执行exec()函数获得返回结果的时候就已经乱码了,而这个函数是php的,现在本机设置的语言环境是zh_CN.UTF-8,php相应的编码也都设置为UTF-8,apache默认编码也已经设置为UTF-8。

最后通过在将672行的代码修改为exec(“LANG=zh_CN.UTF-8; {$this->prepend_cmd}$cmd 2>&1”, $out, $ret_var);问题解决。

现在不太清楚,为何本地locale已经设置为LANG=zh_CN.UTF-8的情况下,exec命令仍然需要明确指定语言环境。

第二个问题,发现是svnmanager-1.08\svnmanager\RepositoryModule.php代码的Bug,如果svn路径中包含了空格,那么在245行做替换的时候,会在头加上”\,从而导致拼接的svn path错误,这个Bug没有细查了,暂时把svn目录的空格都去掉了。

如果出现PHP Fatal error:  Class ‘PEAR_ErrorStack’ not found错误
可以降版本
pear uninstall VersionControl_SVN-0.5.0卸掉0.5.0
pear install VersionControl_SVN-0.4.0重装0.4.0就没报这个错了

以上是安装SVNManager获得的一些经验,希望对看客有用。另:SVNManager最终配置成功的环境全部是UTF-8编码环境,包括Mysql数据库。

Ubuntu 添加 PPA 安装最新的Wine


由于Wine“极度”活跃,Ubuntu自带的Wine版本总是显得太低。我们可以通过添加Wine官方的PPA及时享受最新版Wine带来的好处。

添加方法:

sudo apt-add-repository ppa:ubuntu-wine/ppa && sudo apt-get update

如果已经安装了Wine,此时打开更新管理器就能看到Wine的更新了,没有安装的,现在开始安装体验吧。不过由于PPA的速度实在不敢恭维,所以各位U友多点耐心哈。

PPA for Ubuntu Wine Team主页:https://launchpad.net/~ubuntu-wine/+archive/ppa

Ubuntu 11.04 Natty 安装nvidia显卡驱动


期待已久的Ubuntu 11.04终于来了,并且带来了Ubuntu团队全新开发的Unity界面。话说,Ubuntu默认安装的Unity界面是3D版本的,这也就要求必须正确安装显卡驱动才行。

虽然Ubuntu默认会启动Unity界面,但是如果显卡驱动未能正确安装,在登录的时候,会自动切换到Gnome classic界面。

今天上午更新了之后,就在显卡驱动这块犯了难。按照之前的想法,显卡驱动都是安装x-updates里面的nvidia驱动。但是今天安装完了之后发现nvidia-xconfig命令不存在,而且Unity界面不能进入,那说明显卡驱动未能正确安装阿。但是系统也没有报错。

于是,卸载通过PPA安装的Nvidia驱动。同时禁用PPA,然后启用受限制的驱动,再次启动Unity正常了。哇咔咔。。。
Unity

05/07 UPDATE:增加启用默认受限制驱动的方法,前提是保证已经卸载了其他任何方式安装不能正常启用Unity的nVidia显卡驱动。按英文菜单:System/Additional Drivers
界面截图:

Ubuntu Natty超级用户之Unity快捷键壁纸


来自:Become a Natty power-user in no time using this Unity keyboard shortcuts wallpaper

Ubuntu在Natty版本开发了自己的Unity界面,支持全局菜单等功能。或许更多的人认为Gnome3更给力,不过对于总是跳票的Gnome开发计划来说,Ubuntu确实有必要自己做界面创新。

转入正题,这里共享Unity快捷键桌面背景一张。svg格式:点击下载

效果: