今天发现一个服务器的sshd无法启动,查看/var/log/secure里发现:
Jul 04 15:08:09 devchn sshd[21955]: fatal: daemon() failed: No such device
觉得/dev/null设备有问题,于是重建:
- rm /dev/null
- mknod /dev/null c 1 3
- chmod 666 /dev/null
问题解决。
关于CentOS Linux常见的问题及解决方案
今天发现一个服务器的sshd无法启动,查看/var/log/secure里发现:
Jul 04 15:08:09 devchn sshd[21955]: fatal: daemon() failed: No such device
觉得/dev/null设备有问题,于是重建:
问题解决。
squid是优秀的代理服务器之一,发展历史相当悠久,功能也相当完善,许多大型网站都会用到squid作为web加速服务器。下面我们学习squid的反向代理缓存的使用。
本实例的域名是 cache.webres.wang,通过DNS的轮询技术,将客户端的请求分发给其中一台 Squid 反向代理服务器处理,如果这台 Squid 缓存了用户的请求资源,则将请求的资源直接返回给用户,否则这台 Squid 将没有缓存的请求根据配置的规则发送给邻居 Squid 和后台的 WEB 服务器处理,这样既减轻后台 WEB 服务器的负载,又提高整个网站的性能和安全性。该系统结构图 如下:
配置的系统环境:
一台 DNS 服务器:为域名cache.webres.wang添加两条A记录192.168.1.110和192.168.1.111。
两台Squid 服务器:
squid1:192.168.1.110
squid2:192.168.1.111
两台后端WEB 服务器:
webServer1:192.168.1.220
webServer2:192.168.1.221
dns的配置这里不作介绍,主要介绍squid的安装配置。
配置 Squid1 服务器:
在/etc/hosts添加:
squid2的配置完全一样,除了需要更改visible_hostname。
检查 squid 配置文件正确与否:
生成缓存目录:
启动squid:
MBR和2TB的限制
在使用fdisk建立分区时,我们最大只能建立2TB大小的分区,如果你的磁盘(阵列)大于2TB,只能通过划分多个分区的方法才能充分利用磁盘容量,这对于使用小于2TB分区的朋友没啥影响,但对于使用大于2TB分区(比如5TB的分区)的朋友就会遇到问题了,要突破这个限制;我们先来了解下MBR(Master Boot Record)和GPT(GUID Partition Table).
MBR
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。
MBR是由分区程序(如Fdisk,Parted)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。
从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘(其磁盘卷标类型为MS-DOS),最多只能识别4个主要分区。所以对于一个采用此种分区结构的硬盘来说,想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。扩展分区也是主分区(Primary partition)的一种,但它与主分区的不同在于理论上可以划分为无数个逻辑分区,每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR)。
在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。
在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。如果硬盘太大则必须改用GPT。
GPT
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2.2TB(2.2 × 1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。
在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
与支持最大卷为2 TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式相比,GPT磁盘分区样式支持最大卷为18 EB(Exabytes)并且每磁盘的分区数没有上限,只受到操作系统限制(由于分区表本身需要占用一定空间,最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,IA-64版Windows限制最多有128个分区,这也是EFI标准规定的分区表的最小尺寸)。与MBR分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT分区磁盘有备份分区表来提高分区数据结构的完整性。
EFI
可扩展固件接口(英文名Extensible Firmware Interface 或EFI)是一种个人电脑系统规格,用来定义操作系统与系统韧体之间的软件界面,为替代BIOS的升级方案。可扩展固件接口负责加电自检(POST)、连系操作系统以及提供连接操作系统与硬件的接口。
EFI最初由英特尔开发,现时由UEFI论坛来推广与发展。
UEFI
是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织,贡献者有Intel,Microsoft,AMI,等几个大厂,属于open source,目前版本为2.1。
MBR 与 GPT,都是分区格式,其中MBR最大分区小于等于2TB,而GPT分区没有2TB的限制,理论最大分区18 EB!
现在我们知道了要创建一个大于2TB的分区,就不能使用MBR 格式的分区表了,而要使用GPT格式的分区表,我们最常用的fdisk 分区工具就爱莫能助了,需要使用linux 下的Parted分区工具!
测试环境为:
Dell R710 2u 服务器
cpu 2* XEON 5606
mem 16G
disk 6*1TB sas 7200rpm
raid raid level 5 perc 6i卡
rhel 6 64bit ,创建一个4TB大小分区
下面正式开始分区:
1 在使用parted 分区之前,我们先用fdisk -l 来查看下硬盘信息!
2 上边的信息我们知道 /dev/sdb 4.6TB,现在使用parted 命令,如下图。
3 进入parted 后,执行2,3,4,5,6,7,8,9,10,10,11步骤,指令下边有解释!
4 分区完成后使用print 可以看到刚才分区的信息!大小 4684GB
5 quit 用于退出parted环境,信息提示更新/etx/fstab!
6 再用fdisk -l 来查看下 sdb硬盘,现在已经有sdb1 分区了,注意system gpt!
7 parted 到这里就完成了!
下面格式化/dev/sdb1 文件系统为EXT4:
1 执行 mkfs.ext4 /dev/sdb1 一路回车即可!
更新/etc/fstab :
1.使用blkid 查看分区的uuid 如下图,复制新分区/dev/sdb1的 UUID
2 将 /dev/sdb1的 UUID 添加到 /etc/fstab,/dev/sdb1 挂载在 /data 目录下!
3 至此全部完成, 下面检查一下!
mount -a 重新挂载 /etc/fstab 文件中的记录!
mount 可以发现 /dev/sdb1 已经挂载到 /data 目录下了!
df -h 发现 /data 4.2TB
[root@abintel ~]# parted –help
用法:parted [选项]… [设备 [命令 [参数]…]…]
将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行。
选项:
-h, –help 显示此求助信息
-i, –interactive 在必要时,提示用户
-s, –script 从不提示用户
-v, –version 显示版本
命令:
检查 MINOR 对文件系统进行一个简单的检查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR 将文件系统复制到另一个分区
help [COMMAND] 打印通用求助信息,或关于 COMMAND 的信息
mklabel 标签类型 创建新的磁盘标签 (分区表)
mkfs MINOR 文件系统类型 在 MINOR 创建类型为“文件系统类型”的文件系统
mkpart 分区类型 [文件系统类型] 起始点 终止点 创建一个分区
mkpartfs 分区类型 文件系统类型 起始点 终止点 创建一个带有文件系统的分区
move MINOR 起始点 终止点 移动编号为 MINOR 的分区
name MINOR 名称 将编号为 MINOR 的分区命名为“名称”
print [MINOR] 打印分区表,或者分区
quit 退出程序
rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
resize MINOR 起始点 终止点 改变位于编号为 MINOR 的分区中文件系统的大小
rm MINOR 删除编号为 MINOR 的分区
select 设备 选择要编辑的设备
set MINOR 标志 状态 改变编号为 MINOR 的分区的标志
注意
mklabel label-type 必须是一下这些类型:
* bsd
* loop (raw disk access)
* gpt
* mac
* msdos
* pc98
* sun
例:(parted) mklabel gtp 或者 (parted) mklabel msdos
mkpart(建立新分区)
格式:mkpart part-type fs-type start end
建立一个新的分区
part-type是以下类型之一 primary(主分区), extended(扩展分区), logical(逻辑分区)。
fs-type来指定文件系统,比如ext4 。
start和end是新分区开始和结束的具体位置。0表示起止,-1表示结尾;或者以mb表示或者GB表示!
转自:http://dngood.blog.51cto.com/446195/647702
首先确认你已经安装有oracle 11g,下面是在装有oracle 11g的centos-6 64位配置php与oracle连接的事例。
到这里http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html下载oracle-instantclient11.2-basic,oracle-instantclient11.2-devel,oracle-instantclient11.2-sqlplus文件,开始安装:
加入:
在/etc/php.ini中加入:
接着使用php -m查看模块是否已经被加载
最小内存1G,推荐2G或2G以上
1GB跟2GB物理内存之间的,设定swap大小为物理内存的1.5倍
2GB跟16GB物理内存之间的,设置swap大小与物理内存相等
16GB物理内存以上的,设置swap大小为16GB
至少比在每个oracle实例中的MEMORY_MAX_TARGET和MEMORY_TARGET要大。
至少1GB空间
存放oracle软件文件和数据文件的空间至少6GB
Asianux Server 3 SP2
Oracle Linux 4 Update 7
Oracle Linux 5 Update 2
Oracle Linux 5 Update 5 (with the Oracle Unbreakable Enterprise Kernel for Linux)
Red Hat Enterprise Linux 4 Update 7
Red Hat Enterprise Linux 5 Update 2
Red Hat Enterprise Linux 5 Update 5 (with the Oracle Unbreakable Enterprise Kernel for Linux)
SUSE Linux Enterprise Server 10 SP2
SUSE Linux Enterprise Server 11
下面是64位centos 5或6的软件包要求
binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat
因为本机没有安装桌面环境,所以我们采用静默安装oracle。
切换到root用户
下载oracle 11g到/home/并解压
安装参考:http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm
错误大全:http://docs.oracle.com/cd/E11882_01/server.112/e17766/toc.htm#BEGIN
在centos执行dig命令时,发现没有这个命令,安装bind-utils即可。
取消挂载/home时出现umount: /home: device is busy,原因是因为有程序在使用/home目录,我们可以使用fuser查看那些程序的进程,然后杀掉就可以了。
[root@localhost home]# fuser -m /home
/home: 10278c 10279c 10280c 10281c 10282c 10295 10365 18222c
命令:kill -9 pid
为了方便手机查阅博客的资料,今天为博客增加了手机浏览的支持。需要一个插件和一个手机主题即可完成。
插件:http://wordpress.org/extend/plugins/wpms-mobile-edition/
手机主题:http://wordpress.org/extend/themes/carrington-mobile
由于我的博客使用了varnish缓存,所以还需要在default.vcl配置文件的sub vcl_recv中增加对User-Agent的判断。
eaccelerator.shm_size=”32″
eAccelerator 可以使用的共享内存的数量 (以兆为单位) . “0″ 是指操作系统的默认值. 默认值是 “0″.可根据服务器的实际情况来调整,16,32,64,128都是可以的。
eaccelerator.cache_dir=”/home/php/tmp”
这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 “/tmp/eaccelerator“.
eaccelerator.enable=”1″
开启或关闭 eAccelerator。”1″ 为开启,”0″ 为关闭。默认值为 “1″。
eaccelerator.optimizer=”1″
启或关闭内部优化器,可以提升代码执行速度。”1″ 为开启,”0″ 为关闭。默认值为 “1″。
eaccelerator.check_mtime=”1″
打开或者关闭 PHP 的文件修改检查. “1″ 是指打开, “0″ 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 “1″. 默认值是 “1″.
eaccelerator.debug=”0″
开启或关闭调试日志记录。”1″ 为开启,”0″ 为关闭。默认值为 “0″。会将缓存命中得记录写入日志。
eaccelerator.filter=””
判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等)
如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件
都将被缓存。
eaccelerator.shm_max=”0″
当使用 ” eaccelerator_put() ” 函数时禁止其向共享内存中存储过大的文件。该参数指定允许
存储的最大值,单位:字节 (10240, 10K, 1M)。”0″ 为不限制。默认值为 “0″。
eaccelerator.shm_ttl=”0″
当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在
最后 “shm_ttl” 秒内没有存取的脚本缓存。默认值为 “0″,即:不从共享内春中删除
任何缓存文件。
eaccelerator.shm_prune_period=”0″
当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于
“shm_prune_period” 秒的缓存脚本。默认值为 “0″,即:不从共享内春中删除
任何缓存文件。
eaccelerator.shm_only=”0″
允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认
值为 “0″,即:使用磁盘和共享内存进行缓存。
eaccelerator.compress=”1″
允许或禁止压缩内容缓存。默认值为 “1″,即:允许压缩。
eaccelerator.compress_level=”9″
指定内容缓存的压缩等级。默认值为 “9″,为最高等级。
我们现在要实现的是硬盘安装linux系统,这里以CentOS 6.2为例,简单介绍一下安装过程,不会很详细,只是给个思路。
CentOS 6.2 ISO文件
下载地址:http://mirrors.163.com/centos/6.2/isos/
Paragon-Partition-Manager:用于在xp下ext2或ext3的分区
下载地址:http://115.com/file/e732imz8#Paragon-Partition-Manager-10.0-Server.7z
grub4dos:用于引导linux系统
下载地址:http://115.com/file/dpdswtcm#grub4dos-0.4.4-2009-01-11.zip
Ext2Fsd:用于windows下能读写ext2或ext3分区
下载地址:http://115.com/file/be6ajmwc#Ext2Fsd-0.51.7z
使用Paragon-Partition-Manager分出一个ext3的分区,这个分区是用来存在iso文件的,大小根据iso文件确定,分区之后,硬盘还必须有未分区的空间,因为需要给安装CentOS留下。分区的时候顺便分配盘符。
安装打开ext2fsd软件,在刚才分好的ext3分区上右键,选择“配置文件系统”,点击“启用”,之后“更改并退出”。这时后就可以打开我的电脑,并看见已经多了一个磁盘分区,比如F。接着把iso文件复制到F分区的根目录,
打开我的电脑C盘,工具–文件夹选项–查看,在“隐藏受保护的操作系统文件(推荐)”前面的勾去掉,并选中“显示所有文件和文件夹”,再把“隐藏已经文件类型的扩展名”前面的勾去掉,最后点击应用,确定。
右键单击C盘根目录下的boot.ini,选择“属性”,把“只读”前面的勾去掉。接着,用记事本打开boot.ini文件,在最后一行添加如下内容:
C:GRLDR=”Grub”
解压grub4dos-0.4.4,把文件夹里面的GRLDR复制到C盘根目录。然后在C盘根目录新建boot文件夹,在boot文件夹中再建grub文件夹,把grub4dos-0.4.4文件夹里面的menu.lst复制到C:\boot\grub下。
然后解压挂载或解压iso文件,把里面的isolinux文件夹复制到F盘的根目录下面。
重启电脑,进入引导界面,选择Grub,按下”C”键进入命令行模式。
输入“root (hd0,”(双引号不用输),这时按下”Tab”键,会在下面出现硬个硬盘的所有分区,假如我们看到 “5”对应之前的ext3分区,那就继续输入”5)”,完整的命令是:root (hd0,5)。
现在按下回车键,继续输入kernel /isolinux/vmlinuz,再按下回车,输入initd /isolinux/initrd.img,按下回车,继续输入boot,按下回车,这时grub已经能够引导centos进入安装界面。
这里不多说,需要注意的有几点:
1、在要求选择CentOS image文件所在的分区时,一般选择最后一个分区。
2、这步一定要小心,不然会导致windows系统丢失。在提示“您要进行哪种类型的安装”时,选择“创建自定义布局”进行自定义分区,然后在未分区的空间上新建ext4分区,也可以使用LVM管理分区,不过boot必须是主物理分区。
3、其它的默认就好