Packman 为opensuse 提供了很多附加的包,具体的提供哪些包可以去packman的官方网站看,地址如下:http://packman.inode.at
2012年8月2日星期四
如何给opensuse添加packman.repo
Packman 为opensuse 提供了很多附加的包,具体的提供哪些包可以去packman的官方网站看,地址如下:http://packman.inode.at
2010年12月16日星期四
Gentoo下安装Oracle 11g
折腾了一个下午,终于在gentoo下安装成功。安装过程都是记忆中仅存的,系统环境为去年某时装的gentoo 2007.0 amd64,由于gentoo下没有安装桌面环境,所以在一台windows的机器上装了xming,设置xming的启动参数增加-ac,否则gentoo在设置了DISPLAY后会提示connect refuse的信息。
安装前的准备工作:
1: 增加用户和组
groupadd -g 10000 dba
groupadd -g 10001 oinstall
useradd -u 10000 -g dba -G dba,oinstall -s /sbin/bash -m -d /oracle oracle
2:安装一些需要(也许需要,因为除了错误就找解决的方法,安装了以下的)软件包
emerge sun-jdk libaio logger libstdc++-v3 app-emulation/emul-linux-x86-baselibs app-emulation/emul-linux-x86-xlibs
3:设置oracle用户的.bash_profile
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/11g
export ORA_CRS_HOME=$ORACLE_BASE/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_SID=orcl1
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:${PATH}:$HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
export LIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/JRE
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=american_america.WE8ISO8859P1
export DISPLAY=10.60.4.137:0
export EDITOR=vi
4:sysctl
kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144
5:安装oracle
su – oracle
cd database
./runInstaller
安装过程中碰到的问题:
Error 1: undefined reference to __pthread_unwind@GLIBC_PRIVATE 解决方法: 编辑$ORACLE_HOME/lib/sysliblist,在-ldl -lm -lpthread -lnsl -lirc -lipgo后加-lrt Error 2: cannot find -lagtsh 解决方法: 将database/stage/Components/oracle.rdbms.util/11.1.0.6.0/1/DataFiles/filegroup14.jar文件解压缩,copy 32位的libagtsh.so.1.0文件到$ORACLE_HOME/lib32目录中 Error 3: skipping incompatible /usr/lib64/libpthread_nonshared.a when searching for /usr/lib64/libpthread_nonshared.a 解决方法: 修改$ORACLE_HOME/bin/genclntsh: [ "$1" = "lib32" ] && ULIB="lib32" && LOOP="DONE" && CF=-m32 && USRLIB32=-L/usr/lib32 LD="gcc ${CF} -shared -Wl,-relax ${STUBS} ${USRLIB32} -L${OLIB}" 修改$ORACLE_HOME/bin/genagtsh: if [ $1 != "-32" ]; then LIB_NAME=$1 # Library name LIB_VER=$2 # Library version number LIB=lib NON64_LDOPT= USRLIB32= else LIB_NAME=$2 # Library name LIB_VER=$3 # Library version number LIB=lib32 LOOP="done" NON64_LDOPT="-m32" USRLIB32=-L/usr/lib32 fi LD="gcc ${NON64_LDOPT} -shared ${USRLIB32} -L${ORACLE_HOME}/${LIB} -L${ORACLE_HOME}/${LIB}/stubs" 修改$ORACLE_HOME/ctx/lib/env_ctx.mk: LDFLAGS32=$(AMD32FLAGS) -o $@ -L/usr/lib32 $(LDPATHFLAG)$(PRODLIBHOME32) $(LDPATHFLAG)$(LIBHOME32) $(LDPATHFLAG)$(LIBHOME32)stubs/ 修改$ORACLE_HOME/rdbms/lib/env_rdbms.mk: REDEFINES32=LIBDIR=lib32 LDFLAGS='-m32 -o $$@ -L/usr/lib32 $$(LDPATHFLAG)$$(PRODLIBHOME) $$(LDPATHFLAG)$$(LIBHOME) $$(LDPATHFLAG)$$(LIBHOME)stubs/' Error 4: cannot find -lclntsh 解决方法: 下载oracle client 32bit的zip包,解压缩,然后将client/stage/Components/oracle.rdbms.ic/11.1.0.6.0/1/DataFiles/filegroup4.jar文件解压缩,copy 32位的libclntsh.so.11.1文件到$ORACLE_HOME/lib32目录中 Error 5: gcc: /usr/lib64/libstdc++.so.6: No such file or directory 解决方法: cd /usr/lib64/ ; ln -s libstdc++.so.5 libstdc++.so.6
参考:
2010年7月14日星期三
glibc detected: invalid next size (fast)
*** glibc detected *** .: free(): invalid next size (fast):这种错误。
在网上查了一遍以后,最后写出(char *)malloc(sizeof(char)*strTemp.length()+1)以后问题就解决了,
原来是(char *)malloc(sizeof(char)*strTemp.length())请仔细看看不同点。如果你也遇到此问题不妨也这样试一下。呵呵。编程就是有许多不可思议的问题。
。 |
2010年7月9日星期五
Linux修改时间的方法
在命令行输入:
date
显示当前时间 Fri Aug 3 14:15:16 CST 2007
date -s
按字符串方式修改时间
可以只修改日期,不修改时间,输入: date -s 2007-08-03
只修改时间,输入:date -s 14:15:00
同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s "2007-08-03 14:15:00"
修改完后,记得输入:clock -w
把系统时间写入CMOS
设定Linux时区
首先重要的问题是你使用utc还是local time.
UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)
Local time 是你手表上的时间
传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式
linux可以处理UTC时间和蹩脚的Windows所使用的local time
到底是使用UTC还是local time可以这样来确定:
如果机器上同时安装有Linux和Windows,建议使用local time
如果机器上只安装有Linux,建议使用utc
确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT)
确定timezone
运行tzselect,回答问题后会告诉你时区的名称,比如"Asia/Shanghai",把他记下来(后面我用$timezone代替)
设定timezone
# cp /usr/share/zoneinfo/$timezone /etc/localtime
重新启动或者运行时钟设置脚本使之发生作用
版本差异
由于发行版的差异,以上文件位置可能不同。
一般设置时钟所使用的启动脚本为/etc/rc.d/init.d/setclock
redhat是在/etc/rc.d/rc.sysinit中设置时钟,所以一般要重新启动
运行tzselect命令之后的提示:
[root@saggcc ~]# date
Fri Jul 9 10:08:44 EDT 2010
[root@saggcc ~]# hwclock -r
Fri 09 Jul 2010 10:08:50 AM EDT -0.320560 seconds
[root@saggcc ~]# cd /etc/
[root@saggcc etc]# cd localtime
-bash: cd: localtime: Not a directory
[root@saggcc etc]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9
Please select one of the following time zone regions.
1) east China - Beijing, Guangdong, Shanghai, etc.
2) Heilongjiang (except Mohe), Jilin
3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
4) most of Tibet & Xinjiang
5) west Tibet & Xinjiang
#? 1
The following information has been given:
China
east China - Beijing, Guangdong, Shanghai, etc.
Therefore TZ='Asia/Shanghai' will be used.
Local time is now: Fri Jul 9 22:10:20 CST 2010.
Universal Time is now: Fri Jul 9 14:10:20 UTC 2010.
Is the above information OK?
1) Yes
2) No
#? 1
You can make this change permanent for yourself by appending the line
TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai
2010年7月8日星期四
通过 Ubuntu Night 寻找最快的 APT 源
Ubuntu night(乌班图之夜,http://ubuntu9.com )是一个Ubuntu 爱好者建立的公益站点,宗旨是为了提供更迅捷更易用的Ubuntu。目前网站功能正在不断发展中。
最新发布的功能是Top mirror,包括了Top fast/near/stable mirror,可以找到当前网络上所有可用的Ubuntu 镜像(即源),并按照平均下载速度和地理位置进行排名。
而且,当你找到最适合你的源之后,还可以直接下载它的sourcelist 文件,下载soucelist后可直接将它copy到/etc/apt/source.list或者放在/etc/apt/souce.list.d文件 夹下,非常的方便,无须再苦苦找源升级了。
ubuntu night 的源是实时更新的,源列表会根据当前的网络情况和源健康状况不断地进行更新。
来源:http://ubuntu.tmublr.com/ubuntu-night.html2010年6月8日星期二
vsftpd服务器出现553 Could not create file与 500 OOPS: cannot change directory错误
题目够长呵呵
这两个是我在安装配置vsftpd、建的虚拟用户后上传时一直头疼的错误,所以都拿出来摆摆:
首先 553 Could not create file
这个顾名思义 没有创建(写)文件的权限,
write_enable=YES ,这个是主要的,
另外,更主要的(呵)是你要把这个安放文件的主目录下的文件夹权限改下,
例如:sudo chmod 775 /var/small2/
再一个:500 OOPS: cannot change directory错误(上传时遇到)
我是把文件夹属主改了sudo chown small2 /var/small2/
因为这个用户的建立是在另一个用户下sudo useradd加上的,其文件夹属主也随之了
以上是我遇到的问题及解决办法(前提是在其它设置都正常之下),
该错误诸君有则改之,无则加冕?呵~
vsftpd 553 Could not create file问题的解决方法
vsftpd 553 Could not create file错误
2010年6月3日星期四
linux(redhat)系统启动级别设置
查看/etc/inittab文件,其主要内容如下:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
... ...
0:停机(不要设置为启动默认级别)
1:单用户模式
2:多用户,无NFS(如果您没有配置网络,该级别与3一样)
3:完全多用户模式
4:不使用
5:X11图形模式
6:重启(不要设置为启动默认级别)
如果想让系统不用图形模式登陆可将id:5:initdefault: 中的5改为3即可。
2、Linux运行级别
Linux 启动时,运行一个叫做init 的程序,然后由它来启动后面的任务,包括多用户环境,网络等。
那么,到底什么是运行级别呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1 到6
,具有不同的功能。这些级别在/etc/inittab 文件里指定。这个文件是init
程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
大多数的Linux 发行版本中,启动脚本放在/etc/rc.d/init.d,这些脚本被ln 命令来连接到 /etc/rc.d/rcn.d
目录(这里的n 就是运行级0-6)。如:/etc/rc.d/rc5.d 下面的S10network
就是连接到/etc/rc.d/init.d下的network 脚本的。因此,我们可以知道,rc5.d 下面的文件就是和运行级5 有关的。
2010年5月19日星期三
Linux服务器整体性能监控攻略
使用SNMP等标准工具
标准及非标准工具能执行一个或多个收集、合并及传输阶段,如rstatd或SNMP工具,然而标准的rstat后台程序提供的信息是有限的,速度慢而且效率低。
内核模块
几个系统监控工程利用内核模块来存取监控数据。一般情况下,这是很有效的收集系统数据的方法。然而这种方法存在的问题是,当主内核源内有其它改变时,必须保持代码一致性。一个内核模块可能与用户想使用的其它内核模块相冲突。此外,在使用监控系统之前,用户必须获得或申请模块。
/proc虚拟文件系统
/proc虚拟文件系统是一个较快的、高效率执行系统监控的方法。使用/proc的主要缺点是必须保持代码分析与/proc 文件格式改变的同步。事实表明,Linux内核的改变比/proc 文件格式的改变要更频繁,所以,用/proc虚拟文件系统比用内核模块存在的问题要少。本文介绍的方法即基于/proc虚拟文件系统。
一、 /proc文件系统特点
Linux 系统向管理员提供了非常好的方法,使他们可以在系统运行时更改内核,而不需要重新引导内核系统。这是通过 /proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。不用重新启动而去看 CMOS ,就可以知道系统信息。这就是 /proc 的妙处之一。/proc 目录里主要文件内容,见表-1:
|
表-1 |
小提示: 每个Linux系统根据软硬件不同/proc 虚拟文件系统的内容也有些差异。/proc 虚拟文件系统有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。
1 使用uptime命令
使用uptime命令可以查看系统负载,系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数目。如果一个进程满足以下条件则其就会位于运行队列中:没有在等待I/O操作的结果、它没有主动进入等待状态(也就是没有被调用、没有被停止。
# uptime
9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94
上面命令显示示最近1 分钟内系统的平均负载是6.02,在最近5分钟内系统的平均负载是5.90,在最近的15 分钟内系统的平均负载是3.94。一共四个用户。对于上面的例子来说,由于笔者系统使用是双CPU,那幺其每个CPU的当前任务数为:6.02/2=3.01。另外可以使用cron命令进行定时监测系统负载:
# crontab -e
此时打开一个vi编辑器:输入以下内容:
#30 * * * * * uptime
存盘退出,这样每隔30分钟就记载其平均负载,这样累计一天,我们就可以得到最近一天的平均负载。
2 使用cat /proc/loadavg命令
#cat /proc/loadavg
0.40 0.79 0.70 2/245 4101
Cat /proc/loadavg提供以下数据:
1秒钟平均负载;5秒钟平均负载;15秒钟平均负载;总作业数;正在运行的作业总数。
3 使用cat /proc/stat命令
# cat /proc/stat
cpu 16015 1353 28840 101677 3602 664 4323
cpu0 16015 1353 28840 101677 3602 664 4323
intr 1605646 1565008 52 0 4 4 0 6 0 1 8664 296 16675 1418 0 0 13518
ctxt 617320
btime 1178342189
processes 4236
procs_running 2
procs_blocked 0
cat /proc/stat命令是包含内核统计量,提供以下数据:
CPU 以及CPU0、每行的每个参数意思(以第一行为例)为:
user (432661) 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1 jiffies=0.01秒
nice (13295) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system (86656) 从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
idle (422145968) 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)
iowait (171474) 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,
irq (233) 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq (5346) 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)
CPU时间=user+system+nice+idle+iowait+irq+softirq
"intr"这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。
"ctxt"给出了自系统启动以来CPU发生的上下文交换的次数。
"btime"给出了从系统启动到现在为止的时间,单位为秒。
"processes (total_forks) 自系统启动以来所创建的任务的个数目。
"procs_running":当前运行队列的任务的数目。
"procs_blocked":当前被阻塞的任务的数目。
4 使用xload图形显示系统负载
如果安装了KDE环境,可以使用xload 显示系统平均负载的柱状图 ,它会定期地更新。xload是Linux一个系统命令,使用方法:
|
应用实例:
#xload -scale 1 -update 1 -fg red -hl400
上面命令表示使用xload查看系统的负载。每秒更新一次,其尺寸大小为400,前景颜色为红色,背景颜色为蓝。见图-1。
|
图1 用xload图形显示系统负载 |
由于/proc文件系统非常大,而且系统是动态变化的,所以使用Linux命令比较麻烦,这里我们使用一个工具:phpsysinfo,它是一个支持PHP网页服务器用于侦测主机一些资料的PHP 脚本工具软件,可以提取/proc文件系统中的信息,以图形方式显示出来。另外phpsysinfo支持包括中文在内的20多种语言和许多风格的模板。
1.系统要求:
除了要搭建一个基于LAMP(Linux+PHP+APACHE+MYSQL)的网络构架,其它系统要求:软件:它要求内核(Kenerl)至少在2.2以上。KDE 2.0,桌面颜色至少16位增强色。硬件:中央处理器:奔腾II 450 以上 ,内存 64 兆 ,硬盘空间 60兆。安装前的准备工作: phpsysinfo 是用PHP语言写成的。
2.软件下载:
#wget http://jaist.dl.sourceforge.net/sourc ... nfo/phpsysinfo-2.3.tar.gz
3. 软件安装: 将下载的软件拷贝到/var/www/html/目录下,执行:
#mv phpsysinfo-2.3.tar.gz /var/www/html/sysinfo
#tar -zxvf phpsysinfo-2.3.tar.gz
#cd sysinfo
#cp config.php.new config.php
4.运行软件:
启动apache服务
#/usr/local/apache2/bin/apachectl start
测试http://localhost/sysinfo (见图2)
|
图2 phpsysinfo的中文工作界面 |
phpsysinfo检测分成五个部分:
(1)主机系统资源:主机名称、IP地址、内核版本、已开机时间、登入人数、系统负载。
(2)硬件信息:CPU型号、工作频率、快取大小、逻辑操作数、PCI接口、IDE接口、SCSI接口。
(3)网络负载:网络数据包接收、传送、错误/遗失。
(4)内存资源情况,包括物理内存、虚拟内存等。
(5)已挂载分区:硬盘分区名称,使用比例。
你也可以用它来测试你所租用的虚拟主机的设备及网络状况的品质。