RHEL对于我们来说最大的好处是,RedHat有较为完整严格的QA测试过程,可以保证发行版质量;与硬件厂商有紧密的合作关系,可以保证硬件兼容性;有一批内核Hacker,可以保证新问题不断得到解决。自从用了RHEL,腰不酸了,腿不疼了,一口气能上机房五楼——相比2003年那时候用的Red Hat Linux6.2/7.3,现在OS层面的问题已经很少让我们头痛了,不是么?
今日碰到服务迁移时,图片裁剪程序不正常的问题。
看到php的错误日志有类似信息:
可能是版本的问题,导致部分参数不支持,所以出错了。
遂安装高版本尝试:
http://sourceforge.net/projects/imagemagick/files/
安装6.4以上的应该就支持该参数,因为测试环境是此版本,安装的是6.6
运行的时候出错:
有两个解决方法:
1 运行 /sbin/ldconfig –v 更新
2 运行前执行 export LD_LIBRARY_PATH=/usr/local/lib
看到php的错误日志有类似信息:
Mar 25 18:10:10.978153 [WARNING] fpm_stdio_child_said(), line 192: child 7035 (pool default) said into stderr: "convert: invalid argument for option `135x110^': -thumbnail.", pipe is closed
可能是版本的问题,导致部分参数不支持,所以出错了。
遂安装高版本尝试:
http://sourceforge.net/projects/imagemagick/files/
安装6.4以上的应该就支持该参数,因为测试环境是此版本,安装的是6.6
运行的时候出错:
error while loading shared libraries:
libMagickCore.so.2: cannot open shared object file: No such file or directory
libMagickCore.so.2: cannot open shared object file: No such file or directory
有两个解决方法:
1 运行 /sbin/ldconfig –v 更新
2 运行前执行 export LD_LIBRARY_PATH=/usr/local/lib

今天看到有人buzz上有推荐这本书《Linux 101 Hacks》,是一个在美国洛杉矶生活的Ramesh Natarajan所写的,中文版是国内哈工大的同学翻译的。
引用
《Linux 101 Hacks》是哈工大 IBM 技术俱乐部 08 级新生暑假培训中学习 Linux 基本系统管理知识的参考文献,该书中的很多技巧对于初学者提高系统管理的工作效率很有帮助。考虑到很多初学者因为个人程度或者习惯的原因,更喜欢中文文档,因此我们组织了部分同学对《Linux 101 Hacks》进行了翻译。
本书介绍了linux下的很多小技巧,粗略看了一下,很实用。
作者有十几年的工作经验,经常写点教程什么的,其网站有很多很有用的知识,挺不错的。
参考下载:Free eBook: Linux 101 Hacks in Chinese Language
参考:
《Linux 101 Hacks》中文版发布
http://www.thegeekstuff.com/
引言:机房提供的机器很烦人,连基本的编译环境都没有,比如没有gcc,要自己找到光盘很困难,所以急需配置yum来更新软件,本文可以正常解决,阿权已经测试过,正常使用centos的更新源。
本文为简单的理解翻译,有误请纠正。
有很多方式更新rhel的软件,比如up2date,但需要你在redhat上注册。
你可以用yum和rpm文件更新,其实很简单:
1. 用wget下载yum
2. 安装此rpm文件
3. 配置 /etc/yum.conf 使用兼容的更新源
4. 安装CentOS的GPG Key
5. 测试yum是否正常(下面是更新所有的rpm)
*注意: 此方式更新所有已经安装的rpm,你不需要则可以取消
如果进行到第五步没有错误,那就基本正常了!
参考原文(英文):
Howto: Install yum On RHEL 4
本文为简单的理解翻译,有误请纠正。
有很多方式更新rhel的软件,比如up2date,但需要你在redhat上注册。
你可以用yum和rpm文件更新,其实很简单:
1. 用wget下载yum
# wget http://linux.duke.edu/projects/yum/download/2.0/yum-2.0.8-1.noarch.rpm
2. 安装此rpm文件
# rpm -ivh yum-2.0.8-1.noarch.rpm
3. 配置 /etc/yum.conf 使用兼容的更新源
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
[base]
name=CentOS-$releasever – Base
baseurl=http://mirror.centos.org/centos/4/os/i386/
gpgcheck=1
[updates]
name=Red Hat Linux $releasever – Updates
baseurl=http://mirror.centos.org/centos/4/updates/i386/
gpgcheck=1
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
[base]
name=CentOS-$releasever – Base
baseurl=http://mirror.centos.org/centos/4/os/i386/
gpgcheck=1
[updates]
name=Red Hat Linux $releasever – Updates
baseurl=http://mirror.centos.org/centos/4/updates/i386/
gpgcheck=1
4. 安装CentOS的GPG Key
# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4
5. 测试yum是否正常(下面是更新所有的rpm)
# yum update
*注意: 此方式更新所有已经安装的rpm,你不需要则可以取消
如果进行到第五步没有错误,那就基本正常了!
参考原文(英文):
Howto: Install yum On RHEL 4
Fedora是RedHat的开源计划,从RedHat9.0以后,RedHat不在发行桌面版,而由新的开源计划Fedora发行桌面版,发行周期6个月。CentOS (Community Enterprise Operating System)是在RHEL基础上由CentOS 社区重新编译的。
CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是linux的一个发行版本。它是Red Hat Enterprise Linux(以下称之为RHEL),CentOS正是这个RHEL的克隆版本,RHEL是很多企业采用的linux发行版本,需要向RedHat付费才可以使用,并能得到付过费用的服务和技术支持和版本升级。这个CentOS可以像REHL一样的构筑linux系统环境,但不需要向RedHat付任何的费用,同样也得不到任何有偿技术支持和升级服务。
Red Hat公司的产品中,有RedHat Linux(如Redhat8,9)和针对企业发行的版本Red Hat Enterprise Linux,都能够通过网络FTP免费的获得并使用,但是在2003年的时候,Red Hat Linux停止了开发,这也是为什么没有Redhat10的原因,它的项目有Fedora Project这个项目所取代,并以Fedora Core这个名字发行并提供普通用户免费使用。Fedora Core这个Linux发行版更新很快,大约半年左右就有新的版本出来,目前的版本是Fedora Core 6,这个Fedora Core试验的韵味比较浓厚,每次发行都有新的功能被加入到其中,得到的成功结果将被采用道RHEL的发布中。虽说这样,频繁的被改进更新的不安定产品对于企业来说并不是最好的选择,大多数企业还是会选择有偿的RHEL产品。
Redhat有两大Linux产品系列,其一是免费的Fedora Core系列,主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支。
CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是linux的一个发行版本。它是Red Hat Enterprise Linux(以下称之为RHEL),CentOS正是这个RHEL的克隆版本,RHEL是很多企业采用的linux发行版本,需要向RedHat付费才可以使用,并能得到付过费用的服务和技术支持和版本升级。这个CentOS可以像REHL一样的构筑linux系统环境,但不需要向RedHat付任何的费用,同样也得不到任何有偿技术支持和升级服务。
Red Hat公司的产品中,有RedHat Linux(如Redhat8,9)和针对企业发行的版本Red Hat Enterprise Linux,都能够通过网络FTP免费的获得并使用,但是在2003年的时候,Red Hat Linux停止了开发,这也是为什么没有Redhat10的原因,它的项目有Fedora Project这个项目所取代,并以Fedora Core这个名字发行并提供普通用户免费使用。Fedora Core这个Linux发行版更新很快,大约半年左右就有新的版本出来,目前的版本是Fedora Core 6,这个Fedora Core试验的韵味比较浓厚,每次发行都有新的功能被加入到其中,得到的成功结果将被采用道RHEL的发布中。虽说这样,频繁的被改进更新的不安定产品对于企业来说并不是最好的选择,大多数企业还是会选择有偿的RHEL产品。
Redhat有两大Linux产品系列,其一是免费的Fedora Core系列,主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支。
之前有提到《查看日志里root用户登录失败的ip尝试的次数》,服务器的安全问题是需要办法解决的。
fail2ban是检查各种软件的认证失败记录里找到相应的ip地址,禁止其继续访问此服务。
比如ssh服务,检查到5此失败认证就被禁止访问ssh了。
安装服务用yum很简单:
先检查iptables是否启动,必须的 chkconfig --list | grep "3:on"
启动防火墙 service iptables start
yum -y install fail2ban
service fail2ban start
如果当前没有受限的ip,应该有类似的结果:
也就是新开了一个chain防御ssh访问,优先截止受限ip,fail2ban-SSH的规则和系统规则不构成冲突,受限ip还可以访问别的服务的,比如可以访问网页。
尝试一下在另外一个ip恶意登录:
fail2ban是检查各种软件的认证失败记录里找到相应的ip地址,禁止其继续访问此服务。
比如ssh服务,检查到5此失败认证就被禁止访问ssh了。
安装服务用yum很简单:
先检查iptables是否启动,必须的 chkconfig --list | grep "3:on"
启动防火墙 service iptables start
yum -y install fail2ban
service fail2ban start
如果当前没有受限的ip,应该有类似的结果:
[root@aslibra ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-SSH (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-SSH (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
也就是新开了一个chain防御ssh访问,优先截止受限ip,fail2ban-SSH的规则和系统规则不构成冲突,受限ip还可以访问别的服务的,比如可以访问网页。
尝试一下在另外一个ip恶意登录:
如果你的服务和我的问题类似,则不妨参考此项做法(只是临时迁移):
A数据库服务是在3306,数据库连接用的是hosts里的名称,要迁移到B数据库,但端口服务是3307
在不改PHP代码的前提下,可以这样:
1 先用iptables设置B服务器的3306端口转发到3307:
这里限制了eth1
2 相应的用户导入,如果不知道用户密码,可以导入相应的mysql/usr表里的相应记录,如果有表权限分配,则比较复杂了,这个多熟悉一下数据库操作才行
3 导出数据并导入,当然了,也需要创建相应的库
这里用户是u,密码是p,可以在此服务器访问目标数据库
4 修改hosts相应的记录为B的IP,OK
A数据库服务是在3306,数据库连接用的是hosts里的名称,要迁移到B数据库,但端口服务是3307
在不改PHP代码的前提下,可以这样:
1 先用iptables设置B服务器的3306端口转发到3307:
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 3306 -j DNAT --to-destination :3307
这里限制了eth1
2 相应的用户导入,如果不知道用户密码,可以导入相应的mysql/usr表里的相应记录,如果有表权限分配,则比较复杂了,这个多熟悉一下数据库操作才行
3 导出数据并导入,当然了,也需要创建相应的库
mysqldump -S /Data/mysqldb/3306/mysql.sock -uu -pp aslibra >aslibra.sql
mysql -h 192.168.1.8 -P3307 -uu -pp aslibra < aslibra.sql
mysql -h 192.168.1.8 -P3307 -uu -pp aslibra < aslibra.sql
这里用户是u,密码是p,可以在此服务器访问目标数据库
4 修改hosts相应的记录为B的IP,OK






