存档

‘RedHat/CentOS操作系统’ 分类的存档

搭建本地yum仓库

2017年1月21日 评论已被关闭

搭建本地yum仓库
http://linuxfans.cn/2016/09/07/yum/
yum 详解

yum 简介

yum全称(Yellow dog Updater, Modified),用python开发的软件包管理器,yum实现了自动化的安装,更新,移除rpm包,查询rpm包的相关信息,检查依赖性并自动解决。yum仓库可以使用http或ftp或本地文件系统搭建,可以同时配置多个仓库(Repository),自动解决增加或删除rpm包时遇到的依赖性问题。

配置文件yum.conf

两个变量,为了自动识别不同的操作系统版本
$basearch
$releasever
[main]
cachedir=/var/cache/yum/$basearch/$releasever
缓存的目录
keepcache=0
是否在安装完成后留下缓存
debuglevel=2
调试级别
logfile=/var/log/yum.log
日志文件
exactarch=1
精确地匹配系统版本
obsoletes=1
过期的废弃的包是否使用
gpgcheck=1
检查程序包来源合法性,及完整性
plugins=1
是否支持插件
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
yum命令的子命令
List of Commands:
check Check for problems in the rpmdb
check-update Check for available package updates
clean Remove cached data
deplist List a package’s dependencies
distribution-synchronization Synchronize installed packages to the latest available versions
downgrade downgrade a package
erase Remove a package or packages from your system
groupinfo Display details about a package group
groupinstall Install the packages in a group on your system
grouplist List available package groups
groupremove Remove the packages in a group from your system
help Display a helpful usage message
history Display, or use, the transaction history
info Display details about a package or group of packages
install Install a package or packages on your system
list List a package or groups of packages
load-transaction load a saved transaction from filename
makecache Generate the metadata cache
provides Find what package provides the given value
reinstall reinstall a package
repolist Display the configured software repositories
resolvedep Determine which package provides the given dependency
search Search package details for the given string
shell Run an interactive yum shell
update Update a package or packages on your system
update-minimal Works like update, but goes to the ‘newest’ package match which fixes a problem that affects your system
updateinfo Acts on repository update information
upgrade Update packages taking obsoletes into account
version Display a version for the machine and/or available repos.
配置本地yum仓库

安装createrepo软件
yum -y install createrepo
把需要的包放到文件夹中
mkdir -p /var/www/html/local/6/x86_64
创建repodata,repodata会自动搜索生成依赖关系。
cd /var/www/html/local/6/x86_64
createrepo .
提供yum服务
yum -y install httpd
service httpd start
浏览
http://10.0.0.61/local/6/x86_64/
添加新的rpm包,更新repodata
createrepo –update .
修改/etc/yum.conf
keepcache=1
可将安装的软件包保留下来
cachedir=/var/cache/yum/$basearch/$releasever
这里是缓存路径
客户端配置
#cd /etc/yum.repos.d
#vim local.repo
[local]
name=Local Centos Yum Server
baseurl=http://10.0.0.61/local/6/x86_64
enable=1
gpgcheck=0
#yum –enablerepo=local –disablerepo=base,extras,updates,epel list
同步yum源
镜像同步公网yum源
上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。
http://mirrors.ustc.edu.cn/status/
CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/
epel源:rsync://mirrors.ustc.edu.cn/epel/
同步命令:
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /var/www/html/centos/6/os/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /var/www/html/centos/6/extras/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /var/www/html/centos/6/updates/x86_64/
# epel源
/usr/bin/rsync -av –exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /var/www/html/epel/6/x86_64/

分类: RedHat/CentOS操作系统 标签:

-bash: crontab: command not found

2016年12月16日 评论已被关闭

-bash: crontab: command not found
http://blog.163.com/ydmx_lei/blog/static/77053405201384111426238/
操作步骤

1. 确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

2. 安装 crontab

执行 yum install -y vixie-cron

3. 确认是否安装成功:

执行 crontab -l

4. 看是否设置了开机自动启动

chkconfig –list crond

5. 启动crontab

service crond start

CentOS、Ubuntu、Debian三个linux比较异同

2016年12月13日 评论已被关闭

CentOS、Ubuntu、Debian三个linux比较异同
http://blog.csdn.net/educast/article/details/38315433/
Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。
商业版本以Redhat为代表,开源社区版本则以debian为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用,不能一概而论。而绝大多数VPS上只提供开源社区维护的发行版本。下面就这些不同的Linux发行版进行简单的分析。
Ubuntu
Ubuntu近些年的粉丝越来越多,Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,Ubuntu还对大多数硬件有着良好的兼容性,包括最新的图形显卡等等。这一切让Ubuntu越来越向大众化方向发展。但别忘了:你所需要的只是一个简约、稳定、易用的服务器系统而已!
Ubuntu的图形界面固然漂亮,但这也决定了它最佳的应用领域是桌面操作系统而非服务器操作系统。如何你希望在学习Linux的过程中有个沉浸式的环境,那么Ubuntu的确不错:仅仅安装在自己的电脑中而非服务器中。从这一点来讲,Ubuntu并没有在VPS安装的操作系统选择之列,相信你也不会为了那数百M的驱动与宝贵的内存买单。
CentOS
你会发现非常多的商业公司部署在生产环境上的服务器都是使用的CentOS系统,CentOS是从RHEL源代码编译的社区重新发布版。CentOS简约,命令行下的人性化做得比较好,稳定,有着强大的英文文档与开发社区的支持。与Redhat有着相同的渊源。虽然不单独提供商业支持,但往往可以从Redhat中找到一丝线索。相对debian来说,CentOS略显体积大一点。是一个非常成熟的Linux发行版。
Debian
一般来说Debian作为适合于服务器的操作系统,它比Ubuntu要稳定得多。可以说稳定得无与伦比了。debian整个系统,只要应用层面不出现逻辑缺陷,基本上固若金汤,是个常年不需要重启的系统(当然,这是夸张了点,但并没有夸大其稳定性)。debian整个系统基础核心非常小,不仅稳定,而且占用硬盘空间小,占用内存小。128M的VPS即可以流畅运行Debian,而CentOS则会略显吃力。但是由于Debian的发展路线,使它的帮助文档相对于CentOS略少,技术资料也少一些。
由于其优秀的表现与稳定性,Debian非常受VPS用户的欢迎。
此外还有Arch Linxu、Gentoo、Slackware等一系列的Linux和FreeBSD、Unix等系统,由于其涉及领域更加专业,很少在VPS中出现,因此不作介绍。
对于初学者,我们建议采用CentOS或Debian,这两种系统都能在配置较低的VPS上流畅运行。但是如果VPS配置太低(OPENVZ内存在128M以下,或者XEN架构内存在192M以下),建议采用Debian;否则建议采用CentOS,以获取更多的在线帮助与支持,让自己入门更轻松。

CentOS、Ubuntu、Debian三个linux都是非常优秀的系统,开源的系统,也分付费的商业版和free免费版本,下面简单比较这三种系统。
CentOS系统
很多网站站长一般都选择centOS系统,CentOS是从redhat源代码编译重新发布版。CentOS去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持。
Ubuntu系统

Ubuntu有亮丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且Ubuntu对计算机硬件的支持好于centos和debian,兼容性强,Ubuntu应用非常多,但对于服务器系统来说,个人感觉并不需要太多的各种应用程序,需要的是稳定,操作方便,维护简单的系统。如果你需要在服务器端使用图形界面,ubuntu是一个不错的选择,你需要注意的是,图形界面占用的内存非常大,而内存越大的vps价格也越高。

Debian系统
Debian也非常适合做服务器操作系统,与Ubuntu比较,它没有太多的花哨,稳定压倒一切,对于服务器系统来说是一条不变的真理,debian这个linux系统,底层非常稳定,内核和内存的占用都非常小,在小内存的VPS就可以流畅运行Debian,比如128m的内存,但debian的帮助文档和技术资料比较少。对于小内存,首选debian,对于非常熟悉linux系统的vps高手,首选debian。

在系统的选择上,属于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少,在网络上能方便搜索到安装配置的文档,自身的帮助文档也非常强大;如果你是linux高手,高手的境界一般都选择debian,因为高手能在低配的vps上稳定运行系统;而ubuntu,系统虽然免费,但它适合有钱人玩,它占用的资源是比前面两种系统更高,而vps基本就是卖内存,内存越高,价格越贵。

我们运行着一些全球最大的互联网的营运,因此我们对可靠性和稳定性非常重视,是我们的第一要务。为此,我们只使用Linux来支撑顾客的系统。但是,我们应该使用哪一个Linux的发行版?答案是,CentOS。 为什么呢?

作为一个庞大的系统运营商,在很长的一段时间里,我们需要在多种大型系统中找到一个可靠的,可预测的系统,我们需要从世界上最强大的软件供应商和开源项目中获得强有力的支持。对于那些最常用的系统,我们需要文档,工具和全球性资源。

正因如此,RedHat / CentOS系列发行版正是我们的选择。他们能够满足以上所有需求,而且问题相对较少、长期稳定,这使得我们能够为成千上万的运行了不同配置、服务和应用的系统提供世界级的维护。

RedHat Enterprise Linux (RHEL)是黄金标准的企业发行版。它每五年左右更新一次,在系统的稳定性,前瞻性和安全性上有着极大的优势。每当新的主版本发行后,比如 5.x亦或最近的6.x,所有版本和代码都将保留不变,只有安全问题或是主要的bug,例如后门,端口之类的问题,会通过发布新的子版本来修复。

CentOS是RHEL发行版对应的开源版本,通常在RedHat的发布后就会很快发行。我们使用CentOS的原因在于RHEL发行版的标准支持服务费用非常高,大约每台服务器800美元左右,对于我们很多拥有数十台甚至上百台服务器的用户来说,这是必须要控制的成本。

RHEL/CentOS系统有两个潜在的问题。

首先,一旦确定了主版本,,除了安全问题和严重故障会被修复以外,其他内容将不会做任何改变。这虽然对稳定性有好处,但是对许多服务不利。比如MySQL和PHP服务,它们在这五年的CentOS/RHEL主版本发布周期中会进行繁重的开发和大量的修改。例如,MySQL5.0 是当前RHEL/CentOS主版本所默认使用的版本,但是当前MySQL已经更新到5.1和5.5版本了。

幸运的是,这个问题被Yum软件包管理器轻易地解决了。如此以来,那些主要的软件,例如当前RHEL/CentOS中实际的组件,包括内核和所有工具等仍然来自发行版, 但是那些附加的软件,例如Nginx,Apache,PHP,Java和MySQL等等来自更新的软件源例如Fedora; 或者直接从开发商获取更新的版本例如MySQL。 在我们这里,我们有自己专用的安装镜像来全自动的处理所有这些事情。

其次,CentOS的发行会滞后于RedHat的发行,包括关键的补丁和修复。这在RHEL 6.x的发行周期中尤为显著。但是根据我们的经验,这没什么好担心的,对我们来说永远不会成为问题。

很多人询问我们为什么不用基于Debian的系统,例如Debian或者Ubuntu服务器。如果在别无选择的情况下,我们的确会支持这个建议,但是根据我们的经验来看,这些系统并不如RHEL/CentOS来的稳定和可靠。

我们认为,这在某种程度上是由于他们过快的发展和各个版本、组合之间较少的测试且不成熟所导致的。然而尽管他们非常流行,但是主要的服务商和项目都仍然首选RHEL/CentOS系统,因为这样他们就可以为企业顾客提供服务,(对Oracle和MySQL更是如此)。除此之外,基于Debian的系统有许多内核和稳定性问题,尤其是在我们的云计算服务中。

对我们而言,唯一使用Debian/Ubuntu的原因是:

“它们能够为一个系统提供必要的特殊服务时,尤其是当一些驱动程序或者一些IO 子系统需要一种新的内核的时候”。例如,ext4 文件系统或在最近的内核中日志的改变等;现在,所有这一切都包含在了RHEL/CentOS6.x中。

当然,多数Linux开发者都使用的是Ubuntu的桌面版,而且可以理解的是,他们更倾向在开发生产时使用相同的系统,并且还能使用很多有趣的工具。但总体上来说,我们依然认为RHEL/CentOS是一个更优越的部署平台,并且已经有十多个客户成功地转向使用CentOS 作为生产环境并且没有任何问题,但这仍然是艰巨的任务。

总的来说,你将更乐于看到一个良好管理的CentOS 系统。我们有成千上万台服务器使用CentOS平台,而每年平均只有一台服务器崩溃。我们也很难想象它竟如此罕见,所以,挑一个优秀、迅捷、可靠的平台吧!

centos 5.3 不能登录字符界面问题的解决

2016年12月11日 评论已被关闭

centos 5.3 不能登录字符界面问题的解决

2009-07-17 23:53

看了鸟哥的私房菜,发现在图形界面下可以快速的切换到字符界面下,只要使用ctrl+alt+F1键就可以了(F1是功能键,当然也可以是F2~F7,F7是切换到图形界面的)。欣喜若狂的我,马上尝试了一把。结果令我相当的失望,输入正确的密码后,又回到了登录的界面。总是登录不进去,快郁闷疯了。

 

但是要解决问题的啊,只会郁闷是不起作用的。那么就考虑到是认证的问题。和认证相关的就是/etc/pam.d/这个目录了。而这个问题又是在登录问题相关的。那么一定和/etc/pam.d/login这个配置文件有关系的。起初去看这个文件,发现不了什么问题。一切都是那么平静又那么的正常。

 

还是搞不定了啊。在搞不定的时候,问google啊。其实google有时候也是搜不到丢答案的,这次google就没有给出答案,但是给了个提示。在一篇文章里看到有个哥们查看vim /var/log/secure这个文件,对这个文件,原来还没有结果。此时去观察一把吧,反正这个问题又不是一会能解决的。

 

下面就看看这个文件吧,发现了如下的内容:

 

Jul 17 19:27:12 localhost gdm[6068]: pam_unix(gdm:session): session opened for user root by (uid=0)

Jul 17 20:21:27 localhost userhelper[28055]: pam_timestamp(system-config-authentication:session): updated timestamp file `/var/run/sudo/root/unknown’

Jul 17 20:21:27 localhost userhelper[28058]: running ‘/usr/share/authconfig/authconfig-gtk.py’ with root privileges on behalf of ‘root’

Jul 17 20:22:03 localhost login: PAM unable to dlopen(/lib/security/pam_limits.so)

Jul 17 20:22:03 localhost login: PAM [error: /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32]

Jul 17 20:22:03 localhost login: PAM adding faulty module: /lib/security/pam_limits.so

Jul 17 20:22:05 localhost login: pam_unix(login:session): session opened for user root by (uid=0)

Jul 17 20:22:05 localhost login: Module is unknown

Jul 17 20:22:08 localhost login: PAM unable to dlopen(/lib/security/pam_limits.so)

Jul 17 20:22:08 localhost login: PAM [error: /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32]

Jul 17 20:22:08 localhost login: PAM adding faulty module: /lib/security/pam_limits.so

Jul 17 20:22:11 localhost login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)

Jul 17 20:22:11 localhost login: Module is unknown

 

这里一个so文件的一个类有错误了。既然错了,那么我就不用了。我先去把/etc/pam.d/login文件里面的有/lib/security/pam_limits.so那一行注释掉。

 

这时候再登录字符界面,可以登录进去了,比较高兴。dlopen不能打开so文件,是什么问题呢??我去找了一把/lib/security/pam_limits.so文件,结果这个文件是存在的。下面的出现了32的信息,难道和操作系统的位数有关?我到/lib64/securrity/目录下,找了一把pam_limits.so文件,很不错,找到了。那么我可以把前面注释掉的那一行修改一下吗??抱着试试看的态度修改了一下,结果把问题搞定了。原来是动态库的架构不一样导致了登录不上字符界面。

 

遇到系统的问题,应该马上去查找他的日志文件,来查询发生了什么问题。这样,对搞定问题有很大帮助。以后就多研究日志文件了,呵呵。

centos6.5 iptables实现端口转发

2016年11月12日 评论已被关闭

centos6.5 iptables实现端口转发

http://www.cnblogs.com/apexchu/p/4255551.html

将本地接口IP 61.144.a.b 的3389端口 转发到 116.6.c.d的3389      (主要访问到61.144.a.b的3389端口,就会跳转到116.6.c.d的3389)

【步骤】
1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0    这样允许iptalbes FORWARD。
2、 service iptables stop  关闭防火墙
3、 重新配置规则

iptables -t nat -A PREROUTING –dst 61.144.a.b -p tcp –dport 3389 -j DNAT –to-destination 116.
6.c.d:3389

iptables -t nat -A POSTROUTING –dst 116.6.c.d -p tcp –dport 3389 -j SNAT –to-source 61.144.a.b

service iptables save

将当前规则保存到 /etc/sysconfig/iptables
若你对这个文件很熟悉直接修改这里的内容也等于命令行方式输入规则。
5、 启动iptables 服务, service iptables start

可以写进脚本,设备启动自动运行;

# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

sh /root/myshipin.log
———————————————————————
vi myshipin.log
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

iptables -F -t nat
iptables -t nat -A PREROUTING –dst 61.144.a.b -p tcp –dport 3389 -j DNAT –to-destination 116.6.c.d:3389
iptables -t nat -A POSTROUTING –dst 116.6.a.b -p tcp –dport 3389 -j SNAT –to-source 61.144.c.d
~
—————————————————————-
TCP

iptables -t nat -A PREROUTING –dst 61.144.a.b -p tcp –dport 9304 -j DNAT –to-destination 10.94.a.b:9304
iptables -t nat -A POSTROUTING –dst 10.94.a.b -p tcp –dport 9304 -j SNAT –to-source 61.144.a.b

UDP
iptables -t nat -A PREROUTING –dst 61.144.a.b -p udp –dport 9305 -j DNAT –to-destination 10.94.a.b:9305
iptables -t nat -A POSTROUTING –dst 10.94.a.b -p udp –dport 9305 -j SNAT –to-source 61.144.a.b

另:

iptables配置文件的位置:/etc/sysconfig/iptables 外网地址发变化在配置文件里修改就可以了。