Redhat Linux如何设置用户默认属性
和Oracle的profile类似,在Redhat Linux新建一个用户或组,有很多默认继承的属性,比如密码过期时间,密码最短长度,UID/GID的范围等。这些属性是通过文件/etc/login.defs获得的,所以可以通过修改该文件改变后续所有新建用户的默认设置。
一些主要的属性包括:
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 500
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes
更多的设置及其详细说明,参考man login.defs。
lvm2与powerpath的Found duplicate PV问题
HP的DL580,OS是Redhat Enterprise Linux 4.5,接EMC CX700的存储,在安装了powerpath多路径软件后,系统能正确的识别出路径合并后的/dev/emcpower*设备。但是如果用lvm2来管理这些设备,会发现无论是创建还是查看pv/vg/lv都会报一堆的重复pv的问题:
Found duplicate PV ia0wzQ0pQ8J5H4Hu8hsubKjmx0T7bCNf: using /dev/emcpowert not /dev/sdc
Found duplicate PV OYmrYleEE05bGKm0pBWT60afWjl827a6: using /dev/sde not /dev/emcpowers
Found duplicate PV 0MWBXuho29Gnr5WKm3v0sZbXun3Mso2x: using /dev/sdg not /dev/emcpowerr
...
这个还可以勉强忍受,最头痛的是pvcreate后的名字,也有些是/dev/emcpower*,有些是/dev/sd*,这时候你要在这些pv上创建vg,要从不同的raid组来选取lun,也就是想知道pv对应lun的关系的时候,就一个头两个大。
...
/dev/emcpowerk vg_u03 lvm2 a- 167.03G 2.34G
/dev/emcpowerl vg_u01 lvm2 a- 167.03G 2.34G
/dev/sdaa vg_log lvm2 a- 127.41G 160.00M
/dev/sdab vg_log lvm2 a- 127.41G 160.00M
...
没有办法,只有通过修改/etc/lvm/lvm.conf中的过滤规则来强行让lvm略过非powerpath设备:
上面这个过滤串的意思是,接受(Accept)所有路径中包含cciss和emcpower的设备,拒绝(Reject)所有其他的设备。由于是HP的pc server,其本地硬盘的设备在os中的路径是/dev/cciss/cndn。假如是其他系统,本地盘是传统的sd或者hd的,则需要做相应修改。sd比较麻烦点,因为duplicate出来的也是/dev/sd*,所以需要确认哪些是需要accept的本地硬盘,哪些是需要reject的重复pv。另外,lvm识别出来的设备可以在/etc/lvm/.cache中查看,也可以根据这个文件的内容来制定过滤规则。
整个世界终于清净了
PV VG Fmt Attr PSize PFree
/dev/emcpowera lvm2 -- 100.24G 100.24G
/dev/emcpoweraa lvm2 -- 100.24G 100.24G
/dev/emcpowerab lvm2 -- 100.24G 100.24G
...
Redhat上安装Perl DBD::mysql驱动
打算熟悉下perl,自然主要用于数据库管理和监控方面的,所以需要连接数据库。Perl连接数据库可以通过DBI模块和相应数据库的DBD驱动,上一篇记录了DBI模块的安装,这里记录下DBD::mysql驱动的安装。可以从CPAN下载相应DBD驱动。
安装过程很简单,下载解压:
tar xvf DBD-mysql-4.006.tar
然后进入DBD-mysql-4.006目录,执行:
make
make test
make install
检查已经安装的Perl模块:
DBD::mysql
DBI
Perl
安装DBD::mysql需要mysql_config,包含在Headers and libraries安装包中(MySQL-devel-community-5.1.23-0.rhel4.i386.rpm),并且PATH环境变量中必须包含mysql_config所在的路径。否则在执行perl Makefile.PL生成makefile的时候会报错:
Can’t exec “mysql_config”: No such file or directory at Makefile.PL line 76.
Cannot find the file ‘mysql_config’! Your execution PATH doesn’t seem
not contain the path to mysql_config. Resorting to guessed values!
Can’t exec “mysql_config”: No such file or directory at Makefile.PL line 466.
通过调用DBI->available_drivers()函数可以查看当前系统中已经安装好的所有驱动。安装好DBI和DBD::mysql后,就可以访问MySQL数据库啦,首先在test库中创建一个table:
然后执行下面的Perl脚本插入一条数据并且查询得到结果:
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost","NinGoo","password", {'RaiseError' => 1});
my $rows = $dbh->do("INSERT INTO test (id, name) VALUES (1, 'NinGoo')");
my $query = $dbh->prepare("SELECT name FROM test");
$query->execute();
while(my $rs = $query->fetchrow_hashref()) {
print "$rs->{'name'}\n";
}
Redhat上安装Perl DBI模块
打算熟悉下perl,自然主要用于数据库管理和监控方面的,所以需要连接数据库。Perl连接数据库需要安装DBI模块和相应数据库的DBD驱动,Linux上默认安装的Perl是没有该模块的。可以从CPAN下载DBI模块进行安装。
安装过程很简单,下载解压:
tar xvf DBI-1.604.tar
然后进入DBI-1.604目录,执行:
make
make test
make install
以下脚本可以用来检测系统中已经安装的Perl模块:
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
print join "\n",$inst->modules();
安装完DBI后执行该脚本的结果如下:
DBI
Perl
DBI的文档可以通过perldoc查看: