Skip to content Skip to main navigation Skip to footer

Redhat

CentOS7/RHEL7 常用的基本操作

最新centos/rhel系统centos7和rhel7 和之前的版本有了很大的变化,下面总结了一下在centos7或rhel7 linux系统下的一些最基本的操作。
1. 基本命令包

yum groupinstall base
 

安装完后ifconfig、service、chkconfig等命令就都有了
2. 运行级修改
Redhat 7之前,是修改 /etc/inittab文件。
Redhat 7的话,查看该文件会有提示。

# inittab is no longer used when usingsystemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ONYOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by/etc/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. Bydefault, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To set a default target, run:
#
# ln -sf /lib/systemd/system/<targetname>.target /etc/systemd/system/default.target
 

只需要在/lib/system/system/目录下建个软件连即可。
3. 网络配置
a) 网络管理器
RHEL 7 安装有网络管理器,并处于启动状态

#systemctl status NetworkManager.service
 

b) 查看网络接口

#nmcli dev status
 

查看网络接口。
c) 文本配置网络
在如下路径,增加文件如ifcfg-enp0s3

#/etc/sysconfig/network-scripts/
 

d) 图形化配置网络

#nmtui
 

启动图形化配置。
e) 启动网络

#systemctl restart network.service
 

4. 主机名
编辑文件

/etc/hostname
 

即可修改主机名。
注:RedHat7之前,编辑/etc/sysconfig/network文件。
Redhat7中使用命令 hostnamectlstatus 命令查看主机名

#hostnamectl status
 

此外也可以在

#nmtui
 

中设置主机名
5. 防火墙
查看防火墙状态。

#systemctl status firewalld
 

临时关闭防火墙命令。重启电脑后,防火墙自动起来。

systemctl stop firewalld
 

永久关闭防火墙命令。重启后,防火墙不会自动启动。

 systemctl disable firewalld
 

打开防火墙命令。

systemctl enable firewalld
 

Vmware workstation下创建的centos/Rhel 虚机后的常用操作

当你在vmware workstation 下安装完centos或者rhel linux操作系统之后,可能需要vm workstation继续提供一些支持,比如说读取光盘里的软件包来继续安装相应的包。
本文将会说一些vmware 下rhel 虚机的一些操作。
在VM虚拟机中安装完Redhat系统之后
如果需要用secureCRT连接linux系统的话
操作步骤如下:
1.进入linux系统,在终端输入ifconfig(注意,不是windows的ipconfig)
结果如下
centos vm 1.1
找到ip地址,可以在主机上ping一下,可以ping通就表示可以用
centos vm
下载好secureCRT之后打开,在快速连接中主机名输入刚刚linux的ip地址,用户以root为例,确定之后会请你输入密码
完成之后连接连接成功
centos vm 1.3
安装g++编译器:
在VM中选中虚拟机右键,设置
如下图iso镜像文件选择安装的那个就可以了
centos vm 1.4
确定之后可以在虚拟机的图形界面看到很多文件
使用root用户进行操作
在终端输入cd /进入根目录
继续输入

cd media
cd RH*
cd Pa*
 

进入Packages目录
centos vm 1.5
接下来输入

rpm -ivh libstdc++-devel-4.4.6-4.el6.i686.rpm  回车,安装完毕之后继续输入
rpm -ivh gcc-c++-4.4.6-4.el6.i686.rpm 回车,安装完成之后即可
 

输入g++ –help如果有显示信息说明安装成功
centos vm 1.6
安装gdb:
还是使用root用户进行操作
进入Packages目录
输入rpm -ivh gdb-7.2-56.el6.i686.rpm 回车和进行安装
安装完成之后输入gdb出现gdb版本信息
centos vm 1.7
设置执行程序时不用./从根目录执行,也可以从当前目录执行
登陆要进行操作的用户(每个用户都有不一样的配置)
输入cd进入宿主目录
输入
vi .bash_profile
在Path最后加上:.
centos vm 1.8
保存退出之后再次输入. .bash_profile使其生效
设置gdb调试时生成core调试文件
登陆要操作的用户
cd 进入宿主目录
输入vi .bashrc
在最后一行加上 ulimit -c unlimited
centos vm 1.9
保存退出之后再次输入. .bashrc使配置生效

CentOS/RHEL 如何获取SSH登陆的用户名和密码

systemtap是一款非常强大内核调试工具,可以debug很多关于kernel层的问题。Linux是通过PAM模块检测用户信息和认证信息的,从而确定一个用户是否可以登录系统,利用这个知识点,使用systemtap捕获一下pam_unix.so该动态库文件的函数调用,获得用户在ssh远程登录时的用户名和密码吧。
测试环境:CentOS6.4 32bit
内核版本:2.6.32-358.el6.i686
首先安装以下rpm包

yum --releasever=6.4 update
yum install -y systemtap
debuginfo-install $(rpm -qf /lib/security/pam_unix.so)
 

创建文件,写入以下代码

touch /root/capture_pass.stp
 
· #!/usr/bin/stap
· global username, pass, isSuccRet = 1;
· probe process("/lib/security/pam_unix.so").function("_unix_verify_password")
· {
· username = user_string($name);
· pass = user_string($p);
· }
· probe process("/lib/security/pam_unix.so").function("_unix_verify_password").return
· {
· if ($return == 0)
· {
· printf("User: %s\nPassword: %s\n\n", username, pass);
· isSuccRet = 0;
· }
· }
· probe process("/lib/security/pam_unix.so").function("pam_sm_open_session")
· {
· if (isSuccRet != 0)
· {
· printf("Login via ssh service.\n\User: %s\nPassword: %s\n\n", username, pass);
· }
· isSuccRet = 1;
· }
 

赋予可执行权限

chmod +x capture_pass.stp
 

创建一个记录密码的文件

touch password.txt
 

执行systemstap脚本

stap capture_pass.stp -o password.txt
 

systemtap
本地执行capture_pass.stp脚本,同时ssh远程登录系统,即使第一次登录失败也没有问题,不会记录尝试输入的错误密码。登录成功后ctl+C终止脚本运行,查看password.txt,成功捕获。systemstap很强大的利器,所以只有超户可以使用。
systemtap
原文

CentOS/RHEL 如何使用netstat命令查看tcp的网络连接状态

在centos或者rhel系统我们经常需要查看当前系统的网络连接状态,那么我们首先会想到netstat命令,如何使用netstat命令来查看tcp的网络连接状态呢?
输入下面的命令:

#netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key."\t".state[key]}’
 

会得到类似下面的结果,具体数字会有所不同:

FIN_WAIT_1     286
FIN_WAIT_2     960
SYN_SENT       3
LAST_ACK       32
CLOSING         1
CLOSED          36
SYN_RCVD     144
TIME_WAIT    2520
ESTABLISHED 352     #差不多等于连接的并发数
 

这条命令可以把当前系统的网络连接状态分类汇总。
返回参数的说明如下:
SYN_RECV 表示正在等待处理的请求数;
ESTABLISHED 表示正常数据传输状态;
TIME_WAIT 表示处理完毕,等待超时结束的请求数。
——————————————————————
再来看看awk:
/^tcp/
滤出tcp开头的记录,屏蔽udp, socket等无关记录。
state[] 相当于定义了一个名叫state的数组
NF
表示记录的字段数,如上所示的记录,NF等于6
$NF
表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT
state[$NF] 表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数
++state[$NF] 表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一
END
表示在最后阶段要执行的命令
for(key in state)
遍历数组
print key,”\t”,state[key] 打印数组的键和值,中间用\t制表符分割,美化一下。

CentOS/RHEL 下如何使用CP拷贝命令

在centos 或者rhel系统下,当你使用拷贝命令cp拷贝文件的时候,如果有重复的文件,就会有提示是否覆盖重复文件,那么如何让系统不提示直接覆盖文件呢?今天 在我的VPS上拷一个文件夹,但放的地方有一个同名文件夹而且里面还有文件,如是直接拷过去,结果有N个要确认替换的提示,直接CTRL+C,在网上搜了把,发现有几个方法可以解决,方法如下:
通过使用下面的命令格式:

cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir
 

-r的意思是递归复制,也就是复制文件夹及其下所有文件
-f的意思是遇到同名的文件,不提示,直接覆盖
但为什么我们用这两个参数,系统还是会提示覆盖呢?
这是因为,系统在安装的时候使用了别名,防止我们误操作,覆盖了不该覆盖的文件。使用别名命令就可以看到具体的配置了。

[test@Server home]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 

从上边我们可以看出,我们输入的cp命令,其实是“cp -i”命令,也就是不管我们怎么输入 cp -rf,其实执行的是 cp -i -rf , 也无怪乎总是提问是否覆盖了。
从上边的命令我们可以知道,其他几个命令,也使用了别名,例如ll,ls mv,rm等。
那么如何解决这个问题呢?

[test@Server home]# vi ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
 

只要在相应的命令前加#号,就可以注释掉该命令了。保存退出,然后你就可以用纯粹的原命令了。
其实还有一种更简单的方法可以解决这个问题,就是在cp前加一个反斜杠如: \cp -f file dir 就可以了!

CentOS/RHEL 下如何解压缩RAR格式文件

在centos或者rhel系统下如何来解压缩RAR格式的压缩包文件呢?有些朋友购买了vps后由于他是从原来的win主机搬迁过来,备份打包的数据是rar格式的,那在centos下怎么解压呢?
解决方法如下:
首先下载并安装rarlinux软件包

wget http://www.rarsoft.com/rar/rarlinux-3.9.3.tar.gz
tar -xvf rarlinux-3.9.3.tar.gz
cd rar
make
 

看见下面这些信息就是安装成功了

mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
 

但是在运行命令rar时,出现下面这个问题,

rar: /lib/i686/nosegneg/libc.so.6: version `GLIBC_2.7' not found (required by rar)
 

解决办法:

cp rar_static /usr/local/bin/rar
 

先记住两个常用命令吧:

rar x vpsyou.rar  //解压 vpsyou.rar 到当前目录
rar vpsyou.rar ./vpsyou.com/   //将 vpsyou.com 目录打包为 vpsyou.rar
 

原文

CentOS /RHEL: 如何使用DD命令

在centos 或者rhel系统下我们经常会用到dd命令来创建文件,那么dd命令的用法还有很多。本文将会给大家介绍一些dd命令的例子。
在我们手边没有合适的硬盘IO测试利器时,dd是我们的最佳选择,好,仔细看线面四种方式。思考一个问题,区别在哪儿?

dd bs=1M count=128 if=/dev/zero of=test
dd bs=1M count=128 if=/dev/zero of=test_01; sync
dd bs=1M count=128 if=/dev/zero of=test_02 conv=fdatasync
dd bs=1M count=128 if=/dev/zero of=test_03 oflag=dsync
 

想到了吗?看这里:区别在于内存中写缓存的处理方式。
1# dd bs=4M count=1024 if=/dev/zero of=test
centos dd 命令
没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不到了。所以如果这个速度很快,先不要偷着乐。呵呵

2# dd bs=4M count=1024 if=/dev/zero of=test_01

centos dd 命令
和前面1中的完全一样。分号隔开的只是先后两个独立的命令。当sync命令准备开始往磁盘上真正写入数据的时候,前面dd命令已经把错误的“写入速度”值显示在屏幕上了。所以你还是得不到真正的写入速度。
3# dd bs=4M count=1024 if=/dev/zero of=test_02 conv=fdatasync
centos dd 命令
加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间,这样算出来的时间才是比较符合实际的。
4# dd bs=4M count=1024 if=/dev/zero of=test_03 oflag=dsync
centos dd 命令
加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取1M后就要先把这1M写入磁盘,然后再读取下面这1M,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。
至于哪一种最有参考价值,个人觉得是下面这种:

dd bs=4M count=1024 if=/dev/zero of=test_02  conv=fdatasync
 

因为这种方式最接近计算机实际操作,所以测出来的数据最有参考价值。

CentOS 7 /RHEL7 如何修改网卡名字为eth*

在centos7 系统里,网卡的名字已经不是 以前的eth0 或者eth*这样的,而是变成了enp0s3这样的,那么如何将网卡的名字从enp0s3改成eth0这样的呢?
centos 7
1# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    name="eth0"
 

2# mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-eth0
3# vi /etc/default/grun

  GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet"
    GRUB_DISABLE_RECOVERY="true
 

在rhgb quiet中添加:net.ifnames=0 biosdevname=0
4# 重新建立grub文件

    grub2-mkconfig -o /boot/grub2/grub.cfg
 

5# 重新启动服务器

CentOS 安装php-tidy 模块扩展

在php环境下有时候需要php-tidy模块的支持,那么如何在centos 或rhel系统下安装php-tidy模块呢?
首先需要使用yum命令安装下面的模块:
php-tidy-这个包含了使用tidy 类库支持php的动态共享库。
linux操作系统

在centos下安装php-tidy

输入下面的命令:

yum install php-tidy
 

命令输出:

[root@devops Desktop]# yum -y install glances
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Setting up Install Process
No package glances available.
Error: Nothing to do
[root@devops Desktop]# yum install glances
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Setting up Install Process
No package glances available.
Error: Nothing to do
[root@devops Desktop]#
[root@devops Desktop]#
[root@devops Desktop]#
[root@devops Desktop]# yum install php-tidy
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-tidy.x86_64 0:5.3.3-40.el6_6 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-40.el6_6 for package: php-tidy-5.3.3-40.el6_6.x86_64
--> Processing Dependency: libtidy-0.99.so.0()(64bit) for package: php-tidy-5.3.3-40.el6_6.x86_64
--> Running transaction check
---> Package libtidy.x86_64 0:0.99.0-19.20070615.1.el6 will be installed
---> Package php-common.x86_64 0:5.3.3-40.el6_6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package         Arch        Version                         Repository    Size
================================================================================
Installing:
 php-tidy        x86_64      5.3.3-40.el6_6                  updates       39 k
Installing for dependencies:
 libtidy         x86_64      0.99.0-19.20070615.1.el6        base         127 k
 php-common      x86_64      5.3.3-40.el6_6                  updates      527 k
Transaction Summary
================================================================================
Install       3 Package(s)
Total download size: 693 k
Installed size: 3.3 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): libtidy-0.99.0-19.20070615.1.el6.x86_64.rpm       | 127 kB     00:00
(2/3): php-common-5.3.3-40.el6_6.x86_64.rpm              | 527 kB     00:01
(3/3): php-tidy-5.3.3-40.el6_6.x86_64.rpm                |  39 kB     00:00
--------------------------------------------------------------------------------
Total                                           108 kB/s | 693 kB     00:06
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : php-common-5.3.3-40.el6_6.x86_64                             1/3
  Installing : libtidy-0.99.0-19.20070615.1.el6.x86_64                      2/3
  Installing : php-tidy-5.3.3-40.el6_6.x86_64                               3/3
  Verifying  : libtidy-0.99.0-19.20070615.1.el6.x86_64                      1/3
  Verifying  : php-tidy-5.3.3-40.el6_6.x86_64                               2/3
  Verifying  : php-common-5.3.3-40.el6_6.x86_64                             3/3
Installed:
  php-tidy.x86_64 0:5.3.3-40.el6_6
Dependency Installed:
  libtidy.x86_64 0:0.99.0-19.20070615.1.el6  php-common.x86_64 0:5.3.3-40.el6_6
Complete!
 

重启或者重载 web服务器
输入下面的命令:

service httpd restart
 

验证tidy的配置
输入命令:

php -i | grep -color tidy
 

命令输出:

PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead in Unknown on line 0
tidy
Extension Version => 2.0 ($Id: tidy.c 296107 2010-03-12 10:28:59Z jani $)
tidy.clean_output => no value => no value
tidy.default_config => no value => no value
[root@devops Desktop]#
 

CentOS 更改默认的openSSH 端口

在centos系统里,如何将ssh默认的端口号22改成2200呢?
linux logo

CentOS下更改OpenSSH端口号

要想更改openssh的端口号,需要编辑/etc/ssh/sshd_config文件,更改”Port”字段的值为你想要更改的端口号。
首先,打开“/etc/ssh/sshd_config”配置文件,更改下面的行:

Port 2200
 

保存并推出当前的配置文件,并重新加载或者重新启动sshd服务,输入下面的命令:

service sshd restart
或者
service sshd reload
 

CentOS:yum更新时如何限制某个包为特定的版本

在centos下,当我们使用yum udpate命令更新系统的软件包的时候,会默认将所以需要更新的包都显示出来,并更新。那么如果你想让某一个包一直保持在某一个版本,该如何来做呢?你可以通过下面的两个方法来实现:
1.执行yum update 命令的时候,使用”–exclude” 选项,来排除不需要更新的软件包。
2. 使用yum versionlock 工具
linux操作系统

方法一:使用yum –exclude 命令来限定不更新的软件包

1.编辑配置文件“/etc/yum.conf”
2. 加入下面的内容到配置文件里:

exclude=http* ===》(在这里加入不需要更新的软件包)
 

保存并退出。

方法二:通过yum versionlock工具限制软件包更新

首先你需要安装”yum-plugin-versionlock”工具,并传入需要排除的软件包的名字。这样就可以保护某些软件包的版本不需要更新。
centos 下安装yum-plugin-versionlock
输入下面的命令来安装yum-plugin-versionlock

yum -y install yum-versionlock
或
yum -y install yum-plugin-versionlock
 

命令输出:

[root@devops Desktop]# yum -y install yum-versionlock
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-plugin-versionlock.noarch 0:1.1.30-30.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package                      Arch         Version             Repository  Size
================================================================================
Installing:
 yum-plugin-versionlock       noarch       1.1.30-30.el6       base        30 k
Transaction Summary
================================================================================
Install       1 Package(s)
Total download size: 30 k
Installed size: 43 k
Downloading Packages:
yum-plugin-versionlock-1.1.30-30.el6.noarch.rpm          |  30 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : yum-plugin-versionlock-1.1.30-30.el6.noarch                  1/1
  Verifying  : yum-plugin-versionlock-1.1.30-30.el6.noarch                  1/1
Installed:
  yum-plugin-versionlock.noarch 0:1.1.30-30.el6
Complete!
 

举个例子:使用versionlock工具限定httpd工具不更新

yum versionlock httpd
或者
yum versionlock add httpd
 

命令输出:

[root@devops Desktop]# yum versionlock httpd
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Adding versionlock on: 0:httpd-2.2.15-15.el6.centos.1
versionlock added: 1
 

如果想删除某个软件包部在限制更新之列,可以使用“delete”选项,如下面的命令:

yum versionlock delete httpd
 

列出当前限定列表里的所有软件包
输入下面的命令:

yum versionlock list
 

命令输出:

[root@devops Desktop]# yum versionlock  list
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
0:wget-1.12-1.4.el6.*
0:httpd-2.2.15-15.el6.centos.1.*
versionlock list done
 

移除所有的限定软件包列表
输入下面的命令:

yum versionlock clear
 

命令输出:

[root@devops Desktop]# yum versionlock clear
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
versionlock cleared
 

CentOS 如何阻止yum在update的时候更新内核

在centos 或者rhel系统,如果你想更新系统上的软件包的时候,我们都会使用yum update,这个命令默认情况下也会更新系统给的内核文件,那么如何不让yum update 命令页升级内核文件呢?
linux操作系统
首先编辑”/etc/yum.conf” 文件,添加下面的内容:

exclude=kernel*
 

保存并退出配置文件。
尝试使用yum -y update 命令来更新软件包.

yum -y update
 

如果想不更新配置文件并不更新kernel 文件,可以使用“-x” 选项,输入下面的命令:

yum -x 'kernel*' update
 

CentOS 6.x 安装和配置KVM虚拟化环境

如何在centos 6.x系统上配置给予内核的虚拟化环境呢?如何使用KVM安装并管理虚机?
KVM是CentOS或RHEL系统的一部分,我们仍然需要安装一下KVM包相关的一些软件包。
kvm

CentOS 安装kvm相关软件包

输入下面的命令:

yum groupinstall "Virtualisation Tools" "Virtualization Platform"
yum install python-virtinst
 

或者

 yum install kvm qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools
 

命令输出:

Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.pubyun.com
 * extras: mirrors.pubyun.com
 * updates: mirrors.pubyun.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libguestfs-tools.x86_64 1:1.20.11-11.el6 will be installed
--> Processing Dependency: libguestfs-tools-c = 1:1.20.11-11.el6 for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: libguestfs = 1:1.20.11-11.el6 for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Win::Hivex) >= 1.2.7 for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(XML::Writer) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Sys::Virt) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Sys::Guestfs::Lib) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Sys::Guestfs) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
...
 

启动libvirtd 服务

libvirtd 程序是一个服务器端的进程组件,用来做虚拟化的管理。 输入下面的命令来设置libvirtd服务系统自启动:

chkconfig libvirtd on
 

输入下面的命令启动libvirtd服务:

service libvirtd start
 

命令输出:

Starting libvirtd daemon:                                  [  OK  ]
 

使用下面的命令来检测libvirtd服务的状态:

service libvirtd status
 

命令输出:

libvirtd (pid  31128) is running...
# virsh -c qemu:///system list
 Id    Name                           State
----------------------------------------------------
 

安装并配置网桥

所有的VM虚机会通过一个私有网络来进行网络通信。所以你需要创建一个网桥让各主机之间进行互相通信。输入下面的命令来装网桥组件:

yum install birdge-utils
 

命令输出:

[root@devops Desktop]# yum install bridge-utils
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.pubyun.com
 * extras: mirrors.pubyun.com
 * updates: mirrors.pubyun.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bridge-utils.x86_64 0:1.2-9.el6 will be updated
---> Package bridge-utils.x86_64 0:1.2-10.el6 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package               Arch            Version              Repository     Size
================================================================================
Updating:
 bridge-utils          x86_64          1.2-10.el6           base           30 k
Transaction Summary
================================================================================
Upgrade       1 Package(s)
Total download size: 30 k
Downloading Packages:
bridge-utils-1.2-10.el6.x86_64.rpm                       |  30 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : bridge-utils-1.2-10.el6.x86_64                               1/2
  Cleanup    : bridge-utils-1.2-9.el6.x86_64                                2/2
  Verifying  : bridge-utils-1.2-10.el6.x86_64                               1/2
  Verifying  : bridge-utils-1.2-9.el6.x86_64                                2/2
Updated:
  bridge-utils.x86_64 0:1.2-10.el6
Complete!
 

配置网桥
编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 :

DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
 

创建一个网桥文件ifcfg-br0:”/etc/sysconfig/network-scripts/ifcfg-br0″,并进入下面的内容:

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.192
DELAY=0
 

重启网络服务
输入下面的命令:

service network restart
 

CentOS 使用yum工具安装JAVA SDK

如何在centos系统里安装JAVA JDK 运行时环境呢?本文将会介绍通过使用yum命令安装JAVA SDK 开发环境。
CentOS 6.x 和5.x 版本默认都安装了openJDK运行时环境。这是一个开源的java版本。
java
CentOS 默认安装的JAVA 软件包包括:
[cc lang=”php”] java-1.7.0-openjdk – OpenJDK 运行时环境
java-1.7.0-openjdk-devel – OpenJDK 开发环境
[/code] [cc lang=”php”] 使用下面的命令查看yum软件库里可用的JDK 软件包:
yum search java | grep -i –color JDK
[/code] 命令输出:
[cc lang=”php”] [root@devops Desktop]# yum search java | grep -i –color JDK
ldapjdk-javadoc.x86_64 : Javadoc for ldapjdk
icedtea-web.x86_64 : Additional Java components for OpenJDK – Java browser
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
ldapjdk.x86_64 : The Mozilla LDAP Java SDK
[/code] CentOS 安装 Java SDK 开发包
在命令行下通过yum命令安装JAVA SDK:
[cc lang=”php”] yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
[/code] 命令输出:
[cc lang=”php”] [root@devops Desktop]# yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package java-1.7.0-openjdk.x86_64 1:1.7.0.71-2.5.3.1.el6 will be installed
–> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64
—> Package java-1.7.0-openjdk-devel.x86_64 1:1.7.0.71-2.5.3.1.el6 will be installed
–> Running transaction check
—> Package libjpeg.x86_64 0:6b-46.el6 will be obsoleted
—> Package libjpeg-turbo.x86_64 0:1.2.1-3.el6_5 will be obsoleting
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
java-1.7.0-openjdk x86_64 1:1.7.0.71-2.5.3.1.el6 updates 26 M
java-1.7.0-openjdk-devel x86_64 1:1.7.0.71-2.5.3.1.el6 updates 9.4 M
libjpeg-turbo x86_64 1.2.1-3.el6_5 base 174 k
replacing libjpeg.x86_64 6b-46.el6
Transaction Summary
================================================================================
Install 3 Package(s)
Total download size: 35 M
Is this ok [y/N]:
Is this ok [y/N]: y
Downloading Packages:
(1/3): java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64.rp | 26 MB 00:16
(2/3): java-1.7.0-openjdk-devel-1.7.0.71-2.5.3.1.el6.x86 | 9.4 MB 00:06
(3/3): libjpeg-turbo-1.2.1-3.el6_5.x86_64.rpm | 174 kB 00:00
——————————————————————————–
Total 1.6 MB/s | 35 MB 00:22
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 Official Signing Key)
Package: centos-release-6-3.el6.centos.9.x86_64 (@anaconda-CentOS-201207061011.x86_64/6.3)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libjpeg-turbo-1.2.1-3.el6_5.x86_64 1/4
Installing : 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64 2/4
Installing : 1:java-1.7.0-openjdk-devel-1.7.0.71-2.5.3.1.el6.x86_64 3/4
Erasing : libjpeg-6b-46.el6.x86_64 4/4
Verifying : 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64 1/4
Verifying : libjpeg-turbo-1.2.1-3.el6_5.x86_64 2/4
Verifying : 1:java-1.7.0-openjdk-devel-1.7.0.71-2.5.3.1.el6.x86_64 3/4
Verifying : libjpeg-6b-46.el6.x86_64 4/4
Installed:
java-1.7.0-openjdk.x86_64 1:1.7.0.71-2.5.3.1.el6
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.71-2.5.3.1.el6
libjpeg-turbo.x86_64 0:1.2.1-3.el6_5
Replaced:
libjpeg.x86_64 0:6b-46.el6
Complete!
[/code] CentOS设置 JAVA_HOME 环境变量
java SDK包默认会安装在“/usr/lib/jvm” 目录下:
[cc lang=”php”] ls -l /usr/lib/jvm
[/code] 命令输出:
[cc lang=”php”] [root@devops Desktop]# ls -l /usr/lib/jvm
total 8
lrwxrwxrwx. 1 root root 26 Dec 14 04:13 java -> /etc/alternatives/java_sdk
drwxr-xr-x. 3 root root 4096 Nov 26 14:42 java-1.6.0-openjdk-1.6.0.0.x86_64
lrwxrwxrwx. 1 root root 32 Dec 14 04:13 java-1.7.0 -> /etc/alternatives/java_sdk_1.7.0
drwxr-xr-x. 7 root root 4096 Dec 14 04:13 java-1.7.0-openjdk-1.7.0.71.x86_64
lrwxrwxrwx. 1 root root 34 Dec 14 04:13 java-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.71.x86_64
lrwxrwxrwx. 1 root root 34 Dec 14 04:13 java-openjdk -> /etc/alternatives/java_sdk_openjdk
lrwxrwxrwx. 1 root root 21 Dec 14 04:12 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 Nov 26 14:42 jre-1.6.0 -> /etc/alternatives/jre_1.6.0
lrwxrwxrwx. 1 root root 37 Nov 26 14:42 jre-1.6.0-openjdk.x86_64 -> java-1.6.0-openjdk-1.6.0.0.x86_64/jre
lrwxrwxrwx. 1 root root 27 Dec 14 04:12 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx. 1 root root 38 Dec 14 04:12 jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.71.x86_64/jre
lrwxrwxrwx. 1 root root 29 Dec 14 04:12 jre-openjdk -> /etc/alternatives/jre_openjdk
[/code] 使用export命令设置JAVA_HOME的变量值为包含”bin/java”可执行文件的目录
[cc lang=”php”] export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
[/code] java环境变量就配置完成了。
下面我们来测试执行一个java程序。
创建一个名为test.java的文件,加入下面的代码:
[cc lang=”java”] public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello, World! osetc.com”);
}
}
[/code] 编译并执行test.java程序:
[cc lang=”php”] javac HelloWorld.java
java HelloWorld
[/code] 程序输出:
[cc lang=”php”] Hello, World!
[/code]

CentOS 7/RHEL 7: 如何安装LAMP工具(Apache, MariaDB,PHP)

CentOS 和RHEL 官方发布的最新版centos 7 和rhel 7系统有了很大的改变,那么如何在新的centos 7 和rhel 7 系统上搭建LAMP server.
centos 7 lamp

1.安装并配置apache 服务器

通过yum安装apache web 服务器:
[cc lang=”php”] yum install httpd
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# yum install httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Resolving Dependencies
–> Running transaction check
—> Package httpd.x86_64 0:2.4.6-18.el7.centos will be installed
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
httpd x86_64 2.4.6-18.el7.centos updates 2.7 M
Transaction Summary
==============================================================================================
Install 1 Package
Total download size: 2.7 M
Installed size: 9.3 M
Is this ok [y/d/N]: y
Downloading packages:
httpd-2.4.6-18.el7.centos.x86_64.rpm | 2.7 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : httpd-2.4.6-18.el7.centos.x86_64 1/1
Verifying : httpd-2.4.6-18.el7.centos.x86_64 1/1
Installed:
httpd.x86_64 0:2.4.6-18.el7.centos
Complete!
[/code] 设置apache服务器在系统启动的时候自动启动
[cc lang=”php”] systemctl enable httpd.service
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# systemctl enable httpd.service
ln -s ‘/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
[/code] centos 7 下启动httpd 服务
[cc lang=”php”] systemctl start httpd.service
[/code]

2. 在centos 7 系统上安装MariaDB

通过yum 命令来安装MariaDB 服务器:
[cc lang=”php”] yum install mariadb-server mariadb
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# yum install mariadb-server mariadb
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Resolving Dependencies
–> Running transaction check
—> Package mariadb.x86_64 1:5.5.40-1.el7_0 will be installed
–> Processing Dependency: mariadb-libs(x86-64) = 1:5.5.40-1.el7_0 for package: 1:mariadb-5.5.40-1.el7_0.x86_64
—> Package mariadb-server.x86_64 1:5.5.40-1.el7_0 will be installed
–> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.40-1.el7_0.x86_64
–> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.40-1.el7_0.x86_64
–> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.40-1.el7_0.x86_64
–> Running transaction check
—> Package mariadb-libs.x86_64 1:5.5.35-3.el7 will be updated
—> Package mariadb-libs.x86_64 1:5.5.40-1.el7_0 will be an update
—> Package perl-DBD-MySQL.x86_64 0:4.023-5.el7 will be installed
—> Package perl-DBI.x86_64 0:1.627-4.el7 will be installed
–> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.el7.x86_64
–> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.el7.x86_64
–> Running transaction check
—> Package perl-PlRPC.noarch 0:0.2020-14.el7 will be installed
–> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.el7.noarch
–> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.el7.noarch
–> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.el7.noarch
–> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.el7.noarch
–> Running transaction check
—> Package perl-IO-Compress.noarch 0:2.061-2.el7 will be installed
–> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
–> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
—> Package perl-Net-Daemon.noarch 0:0.48-5.el7 will be installed
–> Running transaction check
—> Package perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 will be installed
—> Package perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
mariadb x86_64 1:5.5.40-1.el7_0 updates 8.9 M
mariadb-server x86_64 1:5.5.40-1.el7_0 updates 11 M
Installing for dependencies:
perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k
perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k
perl-DBD-MySQL x86_64 4.023-5.el7 base 140 k
perl-DBI x86_64 1.627-4.el7 base 802 k
perl-IO-Compress noarch 2.061-2.el7 base 260 k
perl-Net-Daemon noarch 0.48-5.el7 base 51 k
perl-PlRPC noarch 0.2020-14.el7 base 36 k
Updating for dependencies:
mariadb-libs x86_64 1:5.5.40-1.el7_0 updates 753 k
Transaction Summary
==============================================================================================
Install 2 Packages (+7 Dependent packages)
Upgrade ( 1 Dependent package)
Total size: 22 M
Total download size: 21 M
Is this ok [y/d/N]: y
Downloading packages:
(1/9): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:00
(2/9): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:00
(3/9): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:00
(4/9): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:00
(5/9): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00
(6/9): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:00
(7/9): mariadb-5.5.40-1.el7_0.x86_64.rpm | 8.9 MB 00:00:07
(8/9): perl-DBD-MySQL-4.023-5.el7.x86_64.rpm | 140 kB 00:00:07
(9/9): mariadb-server-5.5.40-1.el7_0.x86_64.rpm | 11 MB 00:00:13
———————————————————————————————-
Total 1.6 MB/s | 21 MB 00:00:13
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 1:mariadb-libs-5.5.40-1.el7_0.x86_64 1/11
Installing : 1:mariadb-5.5.40-1.el7_0.x86_64 2/11
Installing : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 3/11
Installing : perl-Net-Daemon-0.48-5.el7.noarch 4/11
Installing : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 5/11
Installing : perl-IO-Compress-2.061-2.el7.noarch 6/11
Installing : perl-PlRPC-0.2020-14.el7.noarch 7/11
Installing : perl-DBI-1.627-4.el7.x86_64 8/11
Installing : perl-DBD-MySQL-4.023-5.el7.x86_64 9/11
Installing : 1:mariadb-server-5.5.40-1.el7_0.x86_64 10/11
Cleanup : 1:mariadb-libs-5.5.35-3.el7.x86_64 11/11
Verifying : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 1/11
Verifying : perl-Net-Daemon-0.48-5.el7.noarch 2/11
Verifying : 1:mariadb-5.5.40-1.el7_0.x86_64 3/11
Verifying : 1:mariadb-server-5.5.40-1.el7_0.x86_64 4/11
Verifying : 1:mariadb-libs-5.5.40-1.el7_0.x86_64 5/11
Verifying : perl-PlRPC-0.2020-14.el7.noarch 6/11
Verifying : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 7/11
Verifying : perl-DBI-1.627-4.el7.x86_64 8/11
Verifying : perl-IO-Compress-2.061-2.el7.noarch 9/11
Verifying : perl-DBD-MySQL-4.023-5.el7.x86_64 10/11
Verifying : 1:mariadb-libs-5.5.35-3.el7.x86_64 11/11
Installed:
mariadb.x86_64 1:5.5.40-1.el7_0 mariadb-server.x86_64 1:5.5.40-1.el7_0
Dependency Installed:
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBD-MySQL.x86_64 0:4.023-5.el7 perl-DBI.x86_64 0:1.627-4.el7
perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7
Dependency Updated:
mariadb-libs.x86_64 1:5.5.40-1.el7_0
Complete!
[/code] 启动mariadb 服务,输入:
[cc lang=”php”] systemctl start mariadb.service
[/code] 设置mariadb 服务器在系统启动时候启用,输入命令:
[cc lang=”php”] systemctl enable mariadb.service
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# systemctl enable mariadb.service
ln -s ‘/usr/lib/systemd/system/mariadb.service’ ‘/etc/systemd/system/multi-user.target.wants/mariadb.service’
[/code] Mariadb 权限配置
输入下面的命令:
[cc lang=”php”] ./usr/bin/mysql_secure_installation
[/code] 命令输出:
[cc lang=”php”] NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 回车
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password:输入密码
Re-enter new password: 再次输入密码
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
… Success!
By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[/code] 测试MariaDB是否安装成功,输入下面的命令:
[cc lang=”php”] mysql -u root -p
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.40-MariaDB MariaDB Server
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
+——————–+
3 rows in set (0.01 sec)
[/code]

3. 在centos 7 上安装PHP

使用yum命令安装php包和其相关的软件包:
[cc lang=”php”] yum install php php-mysql php-gd php-pear
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# yum install php php-mysql php-gd php-pear
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Resolving Dependencies
–> Running transaction check
—> Package php.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: php-common(x86-64) = 5.4.16-23.el7_0.3 for package: php-5.4.16-23.el7_0.3.x86_64
–> Processing Dependency: php-cli(x86-64) = 5.4.16-23.el7_0.3 for package: php-5.4.16-23.el7_0.3.x86_64
—> Package php-gd.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: libt1.so.5()(64bit) for package: php-gd-5.4.16-23.el7_0.3.x86_64
—> Package php-mysql.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: php-pdo(x86-64) = 5.4.16-23.el7_0.3 for package: php-mysql-5.4.16-23.el7_0.3.x86_64
—> Package php-pear.noarch 1:1.9.4-21.el7 will be installed
–> Processing Dependency: php-xml for package: 1:php-pear-1.9.4-21.el7.noarch
–> Processing Dependency: php-posix for package: 1:php-pear-1.9.4-21.el7.noarch
–> Running transaction check
—> Package php-cli.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package php-common.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: libzip.so.2()(64bit) for package: php-common-5.4.16-23.el7_0.3.x86_64
—> Package php-pdo.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package php-process.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package php-xml.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package t1lib.x86_64 0:5.1.2-14.el7 will be installed
–> Running transaction check
—> Package libzip.x86_64 0:0.10.1-8.el7 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
php x86_64 5.4.16-23.el7_0.3 updates 1.3 M
php-gd x86_64 5.4.16-23.el7_0.3 updates 124 k
php-mysql x86_64 5.4.16-23.el7_0.3 updates 97 k
php-pear noarch 1:1.9.4-21.el7 base 357 k
Installing for dependencies:
libzip x86_64 0.10.1-8.el7 base 48 k
php-cli x86_64 5.4.16-23.el7_0.3 updates 2.7 M
php-common x86_64 5.4.16-23.el7_0.3 updates 561 k
php-pdo x86_64 5.4.16-23.el7_0.3 updates 95 k
php-process x86_64 5.4.16-23.el7_0.3 updates 52 k
php-xml x86_64 5.4.16-23.el7_0.3 updates 122 k
t1lib x86_64 5.1.2-14.el7 base 166 k
Transaction Summary
==============================================================================================
Install 4 Packages (+7 Dependent packages)
Total download size: 5.7 M
Installed size: 21 M
Is this ok [y/d/N]: y
ownloading packages:
(1/11): libzip-0.10.1-8.el7.x86_64.rpm | 48 kB 00:00:01
(2/11): php-gd-5.4.16-23.el7_0.3.x86_64.rpm | 124 kB 00:00:01
(3/11): php-5.4.16-23.el7_0.3.x86_64.rpm | 1.3 MB 00:00:01
(4/11): php-mysql-5.4.16-23.el7_0.3.x86_64.rpm | 97 kB 00:00:00
(5/11): php-pdo-5.4.16-23.el7_0.3.x86_64.rpm | 95 kB 00:00:00
(6/11): php-cli-5.4.16-23.el7_0.3.x86_64.rpm | 2.7 MB 00:00:02
(7/11): t1lib-5.1.2-14.el7.x86_64.rpm | 166 kB 00:00:00
(8/11): php-process-5.4.16-23.el7_0.3.x86_64.rpm | 52 kB 00:00:00
(9/11): php-xml-5.4.16-23.el7_0.3.x86_64.rpm | 122 kB 00:00:01
(10/11): php-pear-1.9.4-21.el7.noarch.rpm | 357 kB 00:00:01
(11/11): php-common-5.4.16-23.el7_0.3.x86_64.rpm | 561 kB 00:00:06
———————————————————————————————-
Total 920 kB/s | 5.7 MB 00:00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libzip-0.10.1-8.el7.x86_64 1/11
Installing : php-common-5.4.16-23.el7_0.3.x86_64 2/11
Installing : php-cli-5.4.16-23.el7_0.3.x86_64 3/11
Installing : php-pdo-5.4.16-23.el7_0.3.x86_64 4/11
Installing : php-process-5.4.16-23.el7_0.3.x86_64 5/11
Installing : php-xml-5.4.16-23.el7_0.3.x86_64 6/11
Installing : t1lib-5.1.2-14.el7.x86_64 7/11
Installing : php-gd-5.4.16-23.el7_0.3.x86_64 8/11
Installing : 1:php-pear-1.9.4-21.el7.noarch 9/11
Installing : php-mysql-5.4.16-23.el7_0.3.x86_64 10/11
Installing : php-5.4.16-23.el7_0.3.x86_64 11/11
Verifying : php-common-5.4.16-23.el7_0.3.x86_64 1/11
Verifying : php-pdo-5.4.16-23.el7_0.3.x86_64 2/11
Verifying : t1lib-5.1.2-14.el7.x86_64 3/11
Verifying : php-process-5.4.16-23.el7_0.3.x86_64 4/11
Verifying : php-5.4.16-23.el7_0.3.x86_64 5/11
Verifying : php-gd-5.4.16-23.el7_0.3.x86_64 6/11
Verifying : php-xml-5.4.16-23.el7_0.3.x86_64 7/11
Verifying : php-mysql-5.4.16-23.el7_0.3.x86_64 8/11
Verifying : php-cli-5.4.16-23.el7_0.3.x86_64 9/11
Verifying : libzip-0.10.1-8.el7.x86_64 10/11
Verifying : 1:php-pear-1.9.4-21.el7.noarch 11/11
Installed:
php.x86_64 0:5.4.16-23.el7_0.3 php-gd.x86_64 0:5.4.16-23.el7_0.3
php-mysql.x86_64 0:5.4.16-23.el7_0.3 php-pear.noarch 1:1.9.4-21.el7
Dependency Installed:
libzip.x86_64 0:0.10.1-8.el7 php-cli.x86_64 0:5.4.16-23.el7_0.3
php-common.x86_64 0:5.4.16-23.el7_0.3 php-pdo.x86_64 0:5.4.16-23.el7_0.3
php-process.x86_64 0:5.4.16-23.el7_0.3 php-xml.x86_64 0:5.4.16-23.el7_0.3
t1lib.x86_64 0:5.1.2-14.el7
Complete!
[/code] 测试安装后的php服务器
在/var/www/html/下创一个test.php 文件,并加入下面的内容:
[cc lang=”php”]
[/code] 保存退出后,在浏览器上输入:http://127.0.0.1/test.php,后出现下面的界面。
centos 7 php
到此在centos 7 系统上配置LAMP的工具已完成。

CentOS 7/RHEL 7: 如何安装GCC编译器和开发工具

在CentOS 7和RHEL 7系统上如何安装Gnu GCC编译器和相关的工具比如:autoconf,automake,flex, c++编译器等工具。我们可以通过在centos 或者rhel 7 系统上安装下面的软件包来搭建基本的开发环境。
[cc lang=”php”] autoconf
automake
binutils
bison
flex
gcc
gcc-c++
gettext
libtool
make
patch
pkgconfig
redhat-rpm-config
rpm-build
rpm-sign
[/code] 显示当前系统的yum group,使用下面的命令:
[cc lang=”php”] yum group list
[/code] 命令输出:
[cc lang=”php”] [root@itsprite /]# yum group list
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Available environment groups:
Minimal Install
Infrastructure Server
File and Print Server
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
Done
[/code] 安装GCC和开发环境
输入下面的命令:
[cc lang=”php”] yum group install “Development Tools”
[/code] 安装完之后,使用下面的命令来验证gcc是否安装成功:
[cc lang=”php”] whereis gcc
[/code] 命令输出:
[cc lang=”php”] [root@itsprite /]# whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
[/code] 输入下面的命令来查看gcc工具的版本:
[cc lang=”php”] [root@itsprite /]# gcc –version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[/code] 测试GCC编译器
下面我们使用刚安装好的GCC编译器来编译一个c语言程序.
创建下面的test.c程序:
[cc lang=”c”] #include
int main(void){
printf(“Hello World!\n”);
return 0;
}
[/code] 输入命令编译test.c 文件:
[cc lang=”php”] gcc test.c -o test
[/code] 执行编译后的文件:
[cc lang=”php”] ./test
Hello World!
[/code]

centos 7/rhel7: 如何安装EPEL软件库

在centos 7 或者rhel 7系统上如何安装 EPEL repo呢? 使用EPEL repo 可以用来很容易的安装不同的软件包或者第三方的软件包。这些软件包在centos 或者RHEL官方的yum软件库里是不支持的。所以我们可以通过安装EPEL 软件库来安装官方不支持的软件包。
安装EPEL 软件库
1.首先下载并安装epel安装包,使用下面的命令:
[cc lang=”php”] yum install epel-release-7-2.noarch.rpm
[/code] 命令输出:
[cc lang=”php”] Loaded plugins: amazon-id, rhui-lb
Examining epel-release-7-2.noarch.rpm: epel-release-7-2.noarch
Marking epel-release-7-2.noarch.rpm to be installed
Resolving Dependencies
–> Running transaction check
—> Package epel-release.noarch 0:7-2 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
epel-release noarch 7-2 /epel-release-7-2.noarch 22 k
Transaction Summary
================================================================================
Install 1 Package
Total size: 22 k
Installed size: 22 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-2.noarch 1/1
Verifying : epel-release-7-2.noarch 1/1
Installed:
epel-release.noarch 0:7-2
[/code] Complete!
当你安装完毕后可以使用“yum repolist” 命令来显示epel repo:
[cc lang=”php”] yum repolist
[/code] 命令输出:
[cc lang=”php”] Loaded plugins: amazon-id, rhui-lb
repo id repo name status
epel/x86_64 Extra Packages for Enterprise Linux 7 – x86_64 5,610
rhui-REGION-client-config-server-7/x86_64 Red Hat Update Infrastructure 2.0 Client Configur 2
rhui-REGION-rhel-server-releases/7Server/x86_64 Red Hat Enterprise Linux Server 7 (RPMs) 4,718
repolist: 10,330
[/code] 查找并安装软件包
使用下面的命令来显示在epel repo 里的所有可用软件包:
[cc lang=”php”] $ sudo yum –disablerepo=”*” –enablerepo=”epel” list available
[/code] 或者:
[cc lang=”php”] $ sudo yum –disablerepo=”*” –enablerepo=”epel” list available | grep ‘package’
[/code]

centos 7/rhel7: 如何重启/停止/启动网络服务

在新的centos7 系统里,我们如何来启动网络服务,如何重启网络服务以及如何来停止网络服务呢?centos 7 系统现在使用systemd来替换之前的init进程。它是linux操作系统的系统和服务的管理者。
centos 7
在之前的centos 6 系统里,我们一般都是使用init脚本来控制系统的服务或者进程的。
CentOS 7 重启网络服务,输入下面的命令:
[cc lang=”php”] systemctl retart network.service

systemctl restart network
[/code] Centos 7 启动网络服务,输入下面的命令:
[cc lang=”php”] systemctl start network.service

systemctl start network
[/code] CentOS 7 停止网络服务,输入命令:
[cc lang=”php”] systemctl stop network.service

systemctl stop network
[/code]

CentOS /Linux: 如何挂在只读的Linux文件系统

Linux 系统下的mount命令主要用来挂在系统发现的文件系统或者硬件设备比如光盘,移动硬盘,闪存盘等。那么如何在 CentOS Linux 系统下挂在一个linux 文件系统呢,比如: ext3 或者ext4. ? 如何在 CentOS Linux 系统下挂在一个只读的文件系统呢?本文将会讲述挂在只读文件系统的方法。
linux logo
CentOS Linux 挂载 ext3文件系统
假如在/dev/sdb1磁盘下有一个ext3的文件系统,在linux系统下如何来挂载使用呢?我们可以使用下面的命令将其挂载到/mnt/disk 目录下,输入命令:
[cc lang=”php”] $mount -t ext3 /dev/sdb1 /mnt/disk
[/code] 如果你想让系统启动的时候,这个文件系统能够自动挂载,那么你需要在/etc/fstab 配置文件里定义挂载关系。使用vim命令编辑/etc/fstab 文件,加入下面的内容:
[cc lang=”php”] /dev/sdb1 /mnt/disk ext3 defaults 0 0
[/code] 如果你在/etc/fstab配置文件里定义了这个文件系统的挂载关系,那么可以直接使用下面的命令来挂载:
[cc lang=”php”] $mount /mnt/disk
[/code] CentOS /Linux 挂载只读文件系统
在centos 系统下,挂载一个只读的文件系统,需要使用mount命令的”-o” 选项,并指定值为“ro”, 输入下面的命令只读挂载/dev/sdb1 下的文件系统。
[cc lang=”php”] $sudo mount -t ext3 -o ro /dev/sdb1 /mnt/disk
[/code] 如果你已经挂载了一个文件系统,想将其直接变成只读挂载,输入下面的命令:
[cc lang=”php”] $sudo mount -o remount,ro /mnt/disk
[/code]

Linux下查看yum命令历史记录的方法

linux_inner如何来查看yum在运行后的历史信息呢?比如安装,删除,更新包的过程记录信息。如何使用yum命令重新安装包呢?如何使用yum命令撤销上次的安装呢?
Yum 命令在Centos/Redhat 6.x+之后提供了一个新的选项:history. 可以通过该选项查看到yum命令的处理过程,回滚,撤销,重新执行历史操作。
Yum命令在3.2以上的版本或者是Centos/RHEL 6.x 提供了history选项,可以通过下面的命令来查看yum的版本号:

#yum info yum

yum history 命令形式如下:

yum history
yum history command
yum history [选项] #选项包括: info|list|packages-list|summary|addon-info|redo|undo|rollback|new

下面举几个例子:
1.显示yum 历史

[root@devops ~]# yum history list
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
2 | root <root> | 2013-12-12 05:34 | I, U | 15
1 | System <unset> | 2013-12-12 05:03 | Install | 332
history list

2.查看所有的处理过程

# yum history list all

查看其中的某个或某个范围的处理过程

#yum history list 1
#yum history list 1..5
[root@devops ~]# yum history list 2
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
2 | root <root> | 2013-12-12 05:34 | I, U | 15
history list

3.查看某个包的yum处理过程,比如firefox

[root@devops ~]# yum history list firefox
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
2 | root <root> | 2013-12-12 05:34 | I, U | 15
history list

还可以通过yum history package-list 查看firefox包的完整包列表信息

root@devops ~]# yum history package-list firefox
Loaded plugins: fastestmirror
ID | Action(s) | Package
-------------------------------------------------------------------------------
2 | Install | firefox-17.0.10-1.el6.centos.x86_64
history package-list

基于上面的包列表中的ID,可以查看那次安装的firefox包的完整处理信息:

[root@devops ~]# yum history info 2
Loaded plugins: fastestmirror
Transaction ID : 2
Begin time : Thu Dec 12 05:34:00 2013
Begin rpmdb : 332:0f20e18208bd2e665c18360a74c87da7278db75a
End time : 05:34:19 2013 (19 seconds)
End rpmdb : 340:a77df63b3e7e6db32a8700a8eb627c71f67d8eae
User : root <root>
Return-Code : Success
Command Line : install firefox
Transaction performed with:
Installed rpm-4.8.0-27.el6.x86_64 @anaconda-CentOS-201207061011.x86_64/6.3
Installed yum-3.2.29-30.el6.centos.noarch @anaconda-CentOS-201207061011.x86_64/6.3
Installed yum-plugin-fastestmirror-1.1.30-14.el6.noarch @anaconda-CentOS-201207061011.x86_64/6.3
Packages Altered:
Dep-Install centos-indexhtml-6-1.el6.centos.noarch @base
Install firefox-17.0.10-1.el6.centos.x86_64 @base
Dep-Install hunspell-1.2.8-16.el6.x86_64 @base
Dep-Install liberation-fonts-common-1.05.1.20090721-5.el6.noarch @base
Dep-Install liberation-sans-fonts-1.05.1.20090721-5.el6.noarch @base
...

4.撤销某一次的yum处理过程
我们先用yum把firefox包卸载,然后再撤销卸载,回复正常使用

[root@devops ~]# yum erase firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
...

现在我们来撤销上面的卸载处理,使用下面的命令:
首先查看下卸载操作的ID号

[root@devops ~]# yum history package-list firefox
Loaded plugins: fastestmirror
ID | Action(s) | Package
-------------------------------------------------------------------------------
3 | Erase | firefox-17.0.10-1.el6.centos.x86_64
2 | Install | firefox-17.0.10-1.el6.centos.x86_64
history package-list

从上面的输出我们可以看到卸载操作的ID是3,下面执行撤销操作

# yum history undo 3

5.重新执行某次yum处理过程
输入下面的命令:

#yum history redo id

RHEL Centos 6.x 下KVM虚拟化安装与配置详细步骤

在centos 或RHEL6下如何基于内核虚拟化技术来搭建和管理一个虚拟化环境呢?下面我们会详细的介绍:
首先,KVM是RHEL和Centos linux 系统的一部分。可以很容易的使用下面的命令来安装。需要注意的是安装的包名已经在RHEL/Centos6.x里做了更改。
安装必须的KVM RPMs包,输入下面的命令:

yum groupinstall "Virtualisation Tools" "Virtualization Platform"
yum install python-virtinst
 

或者

yum install kvm qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools
 

命令输出:
[cc lang=”php”] Loaded plugins: product-id, protectbase, rhnplugin
This system is receiving updates from RHN Classic or RHN Satellite.
0 packages excluded due to repository protections
Setting up Install Process
Package libvirt-0.10.2-18.el6_4.15.x86_64 already installed and latest version
Resolving Dependencies
–> Running transaction check
—> Package libguestfs-tools.x86_64 1:1.16.34-2.el6 will be installed
–> Processing Dependency: libguestfs-tools-c = 1:1.16.34-2.el6 for package: 1:libguestfs-tools-1.16.34-2.el6.x86_64
….
..
..
spice-glib.x86_64 0:0.14-7.el6_4.3
spice-gtk.x86_64 0:0.14-7.el6_4.3
spice-gtk-python.x86_64 0:0.14-7.el6_4.3
spice-server.x86_64 0:0.12.0-12.el6_4.5
vgabios.noarch 0:0.6b-3.7.el6
vte.x86_64 0:0.25.1-8.el6_4
Complete!
[/code] 启动libvirtd 服务进程
libvirtd 程序是libvirt虚拟化管理系统里的服务器段的进程,输入下面的命令来启动该服务:

chkconfig libvirtd on
service libvirtd start
 

命令输出:
Starting libvirtd daemon: [ OK ] 你可以通过下面的命令来验证libvirtd服务是否启动

service libvirtd status
libvirtd (pid 2332) is running...
 

实例:如何在linux系统里创建两个虚拟机器
安装和配置一个网桥
所有的虚机只能访问外面的host主机以及其他的在同一主机上的虚机。如果虚机想访问外面的局域网或者互联网,那么久需要创建一个网桥。输入下面的命令来
安装网桥相关的包:

yum install bridge-utils
 

设置一个默认网关
编辑/etc/sysconfig/network文件

#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=osetc.com
GATEWAYDEV=br1
 

配置桥接
更新ifcfg-eth0的配置文件如下:

#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=08:A0:4C:XX:XX:XX
BRIDGE=br0
 

创建网桥br0的配置文件ifcfg-br0,设置br0的ip地址,子网掩码

#cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=172.16.0.1 (和物理主机的ip在同一个网段)
NETMASK=255.255.255.192
DELAY=0
 

重启网络服务

service network restart
 

开始创建虚机
将linux系统盘放入光驱,输入下面的命令:

# virt-install \
--name Kvm1 \
--description "osetc.com RHEL 6.4 64 bit KVM1" \
--ram=2048 \
--vcpus=8 \
--disk path=/var/lib/libvirt/images/rhel-Kvm1-osetc.com.img,size=10 \
--cdrom /var/lib/libvirt/boot/RHEL.6.4.Server-DVD1.iso \
--network bridge:br0 \
--graphics vnc
 

三种配置Linux iptables 防火墙的方法

最近在centos系统上搭建了一个Apache web服务器,就考虑如何通过防火墙配置访问限制,如何来做呢?在RHEL或Centos系统里,如何搭建防火墙呢?
默认情况下,centos系统里的iptables配置是不允许访问被Apache服务器使用的HTTP(端口号80)和HTTPS(端口443)端口。所以你需要通过下面的几种方法去更改配置:
1.编辑/etc/sysconfig/iptables配置文件,设置允许或禁止访问Apache web服务器。另外还需要编辑“/etc/sysconfig/ip6tables”配置文件,设置允许或禁止访问web服务。
2.通过”system-config-firewall-tui”命令 或 “system-config-firewall”(要在GUI界面上运行)。这是个基于图形界面来设置基本的防火墙规则的命令。这个工具将会一直重写“/etc/sysconfig/iptables”文件。
3.使用”/sbin/iptables” 命令:通过该命令可以直接的去更改/追加/添加防火墙规则。访问控制规则通过命令“/sbin/service iptables save”保存”/etc/sysconfig/iptables”文件里。
方法一:配置/etc/sysconfig/iptables 文件(推荐高级用户使用)
编辑IPv4的/etc/sysconfig/iptables配置文件:
[cc lang=”php”] #vi /etc/sysconfig/iptables
[/code] 添加下面的行,对于INPUT规则务必要添加到”LOG“,”FORWARD“和”DROP”行的前面:
##允许任何人访问80和443端口
[cc lang=”php”] -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCET
-A INPUT -m state –state NEW -p tcp –dport 443 -j ACCET
[/code] 保存并退出编辑的文件,重新启动IPv4防火墙服务:
[cc lang=”php”] #service iptables start
[/code] 编辑IPv6的防火墙配置文件/etc/sysconfig/ip6tables:
[cc lang=”php”] #vi /etc/sysconfig/ip6tables
[/code] 添加下面的行,对于INPUT规则务必要添加到”LOG“,”FORWARD“和”DROP”行的前面:
[cc lang=”php”] ##允许任何人访问80和443端口
-A INPUT -m state –state NEW -p tcp –dport 80 -j ACCET
-A INPUT -m state –state NEW -p tcp –dport 443 -j ACCET
[/code] 保存并退出编辑的文件,重新启动IPv6防火墙服务:
[cc lang=”php”] #service ip6tables restart
[/code] 方法二:防火墙配置GUI工具(初学者使用)
system-config-firewall命令是一个设置基本的防火墙规则的图形化用户接口。系统必须安装了KDE或Gnome GUI程序。打开终端输入下面的命令:
[cc lang=”php”] #system-config-firewall
[/code] 命令输出界面如下:
选择启用WWW,SSH,HTTPS服务,然后点击“应用”按钮这个工具将会重写/etc/sysconfig/iptables 配置:
方法三:/sbin/iptables 命令行工具(高级用户使用)
在root用户输入下面的iptables命令打开80和443端口
[cc lang=”php”] ##打开80和443端口
/sbin/iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT
##保存最新添加的防火墙规则
/sbin/service iptables save
##验证新的防火墙设置
/sbin/iptables -L -n -v
/sbin/iptables -L INPUT -n -v | grep :80
/sbin/iptables -L INPUT -n -v | grep :443
[/code] 防火墙示例:
1.只允许特定网段(172.16.1.0/24)访问80和443端口
[cc lang=”php”] ##开放80和443端口
/sbin/iptables -A INPUT -s 172.16.1.0/24 -m state –state NEW -p tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -s 172.16.1.0/24 -m state –state NEW -p tcp –dport 443 -j ACCEPT
##保存最新添加的防火墙规则
/sbin/service iptables save
##验证新的防火墙设置
/sbin/iptables -L -n -v
/sbin/iptables -L INPUT -n -v
/sbin/iptables -L INPUT -n -v | grep :80
/sbin/iptables -L INPUT -n -v | grep :443
[/code] 2.通过iptables设置禁止10.0.0.1访问80端口
[cc lang=”php”] ##禁止访问80端口
iptables -A INPUT -s 10.0.0.1 -p tcp –dport 80 -j DROP
##保存最新添加的防火墙规则
/sbin/service iptables save
[/code]

vi/vim里如何退出不保存?

对于刚开始使用vi/vim文本编辑器的新手来说,如何在不保存更改而退出vi/vim 文本编辑器呢? 当你使用linux vi/vim 文本编辑器对linux下某个配置文件做编辑操作,当你更改完之后,可以保存退出文件,也可以不保存退出vi/vim 编辑器,也就是说更改的所有操作都不会保存。
本来将会讲述如何来不保存并退出当前的vi/vim编辑器。
首先,当你通过vi/vim更改文件之后,按“Esc“键,退出”insert“模式,然后输入冒号(),紧接着输入下面的命令:q!
vi-vim-quit
更多参考:
1. Linux 下 vi/vim 文本编辑器超详细使用指南
2. Linux/Ubuntu:在命令行下安装vim文本编辑器
3. linux vi/vim man 帮助文档

如何在Centos/RHEL上安装KornShell(KSH)

Korn shell 是一个unix上的shell 程序,主要用在各种unix系统上,比如:sun/oracle unix,AIX等。ksh是有贝尔实验室的David korn开发出来的,ksh结合了C shell的交互式特性,并且也融入了bourne shell的语法。
那么如何在linux系统上运行korn shell(ksh)呢?
安装korn shell(ksh)
在linux终端下,通过yum来安装ksh程序
[cc lang=”php”] $sudo yum install ksh
[/code] 或
[cc lang=”php”] #yum install ksh
[/code] 命令输出:
[cc lang=”php”] Loaded plugins: fastestmirror
Determining fastest mirrors
* base: ftp.nsysu.edu.tw
* extras: ftp.cs.pu.edu.tw
* updates: mirrors.stuhome.net
base                                                                 | 3.7 kB     00:00
extras                                                              | 3.4 kB     00:00
updates                                                           | 3.4 kB     00:00
updates/primary_db                                | 3.9 MB     00:05
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package ksh.x86_64 0:20100621-19.el6_4.4 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
============================================================================================
Package        Arch              Version                          Repository
Size
============================================================================================
Installing:
ksh            x86_64            20100621-19.el6_4.4              updates            687 k
Transaction Summary
============================================================================================
Install       1 Package(s)
Total download size: 687 k
Installed size: 1.5 M
Is this ok [y/N]:
Downloading Packages:
ksh-20100621-19.el6_4.4.x86_64.rpm                       | 687 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : ksh-20100621-19.el6_4.4.x86_64                     1/1
Verifying  : ksh-20100621-19.el6_4.4.x86_64                    1/1
Installed:
ksh.x86_64 0:20100621-19.el6_4.4
Complete!
[/code] 查看ksh的安装路径,输入下面的命令:
[cc lang=”php”] $whereis ksh
[/code] 或者使用grep命令:
[cc lang=”php”] $grep –color ksh /etc/shells
[/code] 命令输出:
ksh install1
将ksh设置为系统默认shell
超级用户(root)可以使用下面的命令为任何用户更改登陆后的shell程序。
命令如下:
[cc lang=”php”] $sudo chsh -s /bin/ksh 用户名
[/code] 或者
[cc lang=”php”] #chsh -s /bin/ksh 用户名
[/code] 示例:将test用户的默认登陆shell设置为ksh
[cc lang=”php”] #chsh -s /bin/ksh test
[/code] 验证当前用户正在使用的shell程序,输入下面的命令:
[cc lang=”php”] $echo $SHELL
[/code] 命令输出:
[cc lang=”php”] /bin/ksh
[/code] 查看ksh的版本号,输入命令:
[cc lang=”php”] $ksh –version
[/code] 命令输出:
[cc lang=”php”] version         sh (AT&T Research) 93t+ 2010-06-21
[/code]

CentOS/RHEL:检测各种服务(service)的启动状态

RHEL/Centos/Fedora linux系统里,如何来查看某些特定的服务比如:MySQL 或者Apache是否在运行中呢?
当然你需要使用“service”命令,该命令主要用于管理Linux操作系统中各种服务,它是一个脚本命令,会调用/etc/init.d/下面的各种服务启动程序。
service SERVER status
OR
/etc/init.d/SERVER status
示例:
在Centos 或RHEL下,查看一个名为mysqld(MySQL server)的是否处于运行状态。
[cc lang=”php”] # service mysqld status
[/code] 示例输出结果:
[cc lang=”php”] mysqld (pid  4324) is running…
[/code]  
查看所有服务的状态
命令service –status-all 将会运行所有的启动脚本来显示各个服务的运行状态:
[cc lang=”php”] #service –status-all
[/code] 输出为:[cc lang=”php”] [root@osetc ~]# service –status-all
Aegis is running
auditd is stopped
crond (pid  938) is running…
ip6tables: Firewall is not running.
iptables: Firewall is not running.
ERROR! MySQL is running but PID file could not be found
netconsole module not loaded
Configured devices:
lo eth0 eth1
Currently active devices:
lo eth0 eth1
ntpd (pid  930) is running…
Usage: /etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
master is stopped
rdisc is stopped
rsyslogd (pid  883) is running…
sandbox is stopped
saslauthd is stopped
openssh-daemon (pid  13367) is running…
vsftpd (pid 31721) is running…
[/code]  
ps 和pgrep命令
你也可以执行ps或者pgrep 命令来查看服务的状态
[cc lang=”php”] #ps aux | grep ‘SERVER’
#ps aux | grep ‘mysqld’
#pgrep ‘SERVER’
#pgrep -u username ‘SERVER’  ##查看某个用户的服务状态
#pgrep mysqld
[/code]  
启动服务:
如果Apache服务器的服务httpd没有启动,那我们如何来启动呢:
[cc lang=”php”] #service httpd status
#chkconfig httpd on
#service httpd start
[/code] 更多信息可以参考man帮助- service, pgrep,ps