平时的工作会涉及到服务器管理、PHP程序、前台脚本编程,有合适的内容就跟大家分享
引言:机房提供的机器很烦人,连基本的编译环境都没有,比如没有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恶意登录:
mysql的安装目录里有support-files,里面有几份默认的配置
分别是 huge large medium 等,还有高压力的InnoDB的参考:
[root@aslibra support-files]# grep -v ^# my-huge.cnf
key_buffer = 384M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
分别是 huge large medium 等,还有高压力的InnoDB的参考:
[root@aslibra support-files]# grep -v ^# my-huge.cnf
key_buffer = 384M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
如果你的服务和我的问题类似,则不妨参考此项做法(只是临时迁移):
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
32bit和64bit系统在硬件支持上有差别,整理一些看过的资料,备查。
32位系统和4G内存的关系
为什么32位操作系统最大只能支持4G内存呢?64位操作系统能支持最大多少内存?
32位操作系统,配合32位CPU,寻址空间位2^32次方,计算出来是4294967296字节,就是4G,32位系统最大支持4G空间,如果想要32位系统支持4G以上空间的话,就要用PAE的特殊内核,采用特殊方式访问,但是系统效率会比原生的64位系统低。
smp, bigmem, PAE 內核都可以在 32bit 系统使用多於 4G 內存,但是每一个独立进程只能使用3G 左右。
64位操作系统配合64位CPU,寻址空间是2^64次方,计算出来是
18446744073709551616字节,换算一下4G个G,太大了,反正是
N多G,一辈子也用不完。当然这是64位系统的理论最大内存支持,实际上谁也用不了这么大内存,
反正如果你的系统是64位的,CPU是64位的,那么随便插个8G,16G内存是肯定能支持的。
要完全识别4G内存,是不是必须使用64位系统?
即使32位系统显示出4G内存 也发挥不出4G内存的能量 2G和4G是差不多的 要想充分利用4G内存 还是64位的vista
64 位体系结构和 32 位体系结构的比较
地址空间 64 位 Windows 32 位 Windows
虚拟内存 16 TB 4 GB
页面文件 512 TB 16 TB
页面缓冲池 128 GB 470 MB
非页面缓冲池 128 GB 256 MB
系统缓存 1 TB 1 GB
32位Windows中的虚拟内存空间
和其他所有32位Windows一样,Windows Vista也被限制于只能使用4 GB的虚拟内存寻址空间。这4 GB内存被分为两部分,其中2 GB用于用户进程,而另外2 GB则用于被操作系统的所有进程共享。在某些特殊的情况下,通过使用/3GB引导参数可以强制让所有系统进程只使用1 GB内存空间,而给用户进程使用3 GB内存,但是该方法也仅适用于设计于可以利用这些额外地址空间的应用程序,而且所有程序都会被操作系统可用的内存数量所限制。
32位系统和4G内存的关系
为什么32位操作系统最大只能支持4G内存呢?64位操作系统能支持最大多少内存?
32位操作系统,配合32位CPU,寻址空间位2^32次方,计算出来是4294967296字节,就是4G,32位系统最大支持4G空间,如果想要32位系统支持4G以上空间的话,就要用PAE的特殊内核,采用特殊方式访问,但是系统效率会比原生的64位系统低。
smp, bigmem, PAE 內核都可以在 32bit 系统使用多於 4G 內存,但是每一个独立进程只能使用3G 左右。
64位操作系统配合64位CPU,寻址空间是2^64次方,计算出来是
18446744073709551616字节,换算一下4G个G,太大了,反正是
N多G,一辈子也用不完。当然这是64位系统的理论最大内存支持,实际上谁也用不了这么大内存,
反正如果你的系统是64位的,CPU是64位的,那么随便插个8G,16G内存是肯定能支持的。
要完全识别4G内存,是不是必须使用64位系统?
即使32位系统显示出4G内存 也发挥不出4G内存的能量 2G和4G是差不多的 要想充分利用4G内存 还是64位的vista
64 位体系结构和 32 位体系结构的比较
地址空间 64 位 Windows 32 位 Windows
虚拟内存 16 TB 4 GB
页面文件 512 TB 16 TB
页面缓冲池 128 GB 470 MB
非页面缓冲池 128 GB 256 MB
系统缓存 1 TB 1 GB
32位Windows中的虚拟内存空间
和其他所有32位Windows一样,Windows Vista也被限制于只能使用4 GB的虚拟内存寻址空间。这4 GB内存被分为两部分,其中2 GB用于用户进程,而另外2 GB则用于被操作系统的所有进程共享。在某些特殊的情况下,通过使用/3GB引导参数可以强制让所有系统进程只使用1 GB内存空间,而给用户进程使用3 GB内存,但是该方法也仅适用于设计于可以利用这些额外地址空间的应用程序,而且所有程序都会被操作系统可用的内存数量所限制。





