灌溉梦想,记录脚步

清除Vista过期系统补丁包

vista sp2 rc版本发布了,安装之后发现C增大不少,不过在官方上查到可以用工具清除过期补丁包,工具具体路径为 “c:\Windows\System32\compcln.exe”。激活开始菜单,依次选择“所有程序→附件→命令提示符”,然后输入compcln 之后会提示:
C:\Users\chen>compcln
此操作将使所有的 Service Pack 和其他程序包永久保留在这台计算机上。操作完成后,您
将无法从此系统删除任何已清除的程序包。

是否要继续? (Y/N): y

#选择y

正在执行 Windows Component Clean…
Windows Component Clean 已完成。
#即清除完成

linux加入windows域

一、实验环境:
AD server:windows server 2003
AD samba:centos 5.2
AD server的hostname和IP地址:
rocdk890 192.168.1.142/24
AD samba的hostname和IP地址:
lamp 192.168.1.144/24
Domain name:rocdk890.tt.com
DNS:192.168.1.142
安装NTP时间验证套件:
# mount /dev/cdrom /media
# rpm -ivh /cdrom/CentOS/RPMS/ntp-4.2.2p1-7.el5.i386.rpm
当然也可以用yum来安装
#yum -y install ntp (注意ntp要小写)
再来与AD server校准时间
# ntpdate 192.168.1.142
# hwclock -w
安装Samba服务器软件需求:
krb5-workstation-1.2.7-19
pam_krb5-1.70-1
krb5-devel-1.2.7-19
krb5-libs-1.2.7-19
samba-3.0.5-2
当然我在这里偷了下懒,我直接用yum进行的安装,毕竟只是了解下这个实验的思路,所以就不用管安全性了。
#yum -y install samba
安装完后,如果你要确认samba安装成功没有可以用下述命令来检查samba包的基础库支持,一般用yum安装或RPM安装是不会有问题的。
# smbd -b | grep LDAP
HAVE_LDAP_H
HAVE_LDAP
HAVE_LDAP_DOMAIN2HOSTLIST

# smbd -b | grep KRB
HAVE_KRB5_H
HAVE_ADDRTYPE_IN_KRB5_ADDRESS
HAVE_KRB5

# smbd -b | grep ADS
WITH_ADS
WITH_ADS
# smbd -b | grep WINBIND
WITH_WINBIND
WITH_WINBIND
二、编辑设定档
1、krb5配置
#vi /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = TT.COM # 大写域名称
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
TT.COM = { # 大写域名称
kdc = 192.168.1.142:88 # 域伺服器IP
admin_server = 192.168.1.142:749 # 域伺服器IP
default_domain = tt.com # 预设域名称,这里就不用大写了
}
[domain_realm]
.tt.com = TT.COM # 域验证范围
tt.com = TT.COM
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
连接AD server
kinit administrator@TT.COM
Kerberos 的 kinit 命令将测试服务器间的通信,后面的域名TT.COM 是你的活动目录的域名,必须大写,否则会收到错误信息:
kinit(v5): Cannot find KDC for requested realm while getting initial credentials.
如果通信正常,你会提示输入口令,口令正确的话,就返回 bash 提示符,如果错误则报告:
kinit(v5): Preauthentication failed while getting initial credentials.
這一步代表了已经可以和AD server做沟通了,但并不代表Samba Server已经加入域了。
2、smb.conf配置
#vi /etc/samba/smb.conf
#===================== Global Settings =========================
[global]
workgroup = TT # 一定要填自己的domain名称
netbios name = lamp #你的linux主机名
idmap uid = 15000-20000
idmap gid = 15000-20000
winbind enum groups = yes
winbind enum users = yes
winbind separator = /
; winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow =192.168.1. 127. 192.168.12. 192.168.13.
# ———————– Domain Members Options ————————
security = domain
; passdb backend = tdbsam
; realm = TT.COM #这里我觉得还是注释起好点
encrypt passwords = yes #这句是必须添加的,不然后面验证会提示不成功
password server = 192.168.1.142
[homes]
path = /home/%D/%U
browseable = no
writable = yes
valid users = tt.com/%U#这里记得把域名带上,否则你用ad帐号访问samba服务器时输入正确的ad帐号和密码仍然不能访问共享目录
create mode = 0777
directory mode = 0777
3、配置nsswitch.conf
#vi /etc/nsswitch.conf
修改以下位置
passwd: files winbind
shadow: files
group: files winbind
4、启用samba和winbind服务
service smb reload #加这一句是用来解决有时候samba启动不了的问题
service smb start
service winbind start
5、加入AD域
[root@lamp ~]# net rpc join -S rocdk890.tt.com -U administrator
Password:
Joined domain TT.
6、验证加入是否成功
[root@lamp ~]# net rpc testjoin
Join to 'TT' is OK
[root@lamp ~]# wbinfo -t
checking the trust secret via RPC calls succeeded
[root@lamp ~]# wbinfo -u
TT/administrator
TT/guest
TT/support_388945a0
TT/krbtgt
[root@lamp ~]# wbinfo -g
TT/domain computers
TT/domain controllers
TT/schema admins
TT/enterprise admins
TT/domain admins
TT/domain users
TT/domain guests
TT/group policy creator owners
TT/dnsupdateproxy
[root@lamp ~]# getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
TT/administrator:*:15000:15000:Administrator:/home/TT/administrator:/bin/bash
TT/guest:*:15001:15001:Guest:/home/TT/guest:/bin/bash
TT/support_388945a0:*:15002:15000:SUPPORT_388945a0:/home/TT/support_388945a0:/bin/bash
TT/krbtgt:*:15003:15000:krbtgt:/home/TT/krbtgt:/bin/bash
[root@lamp ~]# getent group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
dip:x:40:
ftp:x:50:
lock:x:54:
nobody:x:99:
users:x:100:
rpm:x:37:
dbus:x:81:
utmp:x:22:
mailnull:x:47:
smmsp:x:51:
nscd:x:28:
floppy:x:19:
vcsa:x:69:
rpc:x:32:
rpcuser:x:29:
nfsnobody:x:65534:
sshd:x:74:
pcap:x:77:
utempter:x:35:
slocate:x:21:
haldaemon:x:68:
ntp:x:38:
TT/domain computers:*:15002:
TT/domain controllers:*:15003:
TT/schema admins:*:15004:TT/administrator
TT/enterprise admins:*:15005:TT/administrator
TT/domain admins:*:15006:TT/administrator
TT/domain users:*:15000:
TT/domain guests:*:15001:
TT/group policy creator owners:*:15007:TT/administrator
TT/dnsupdateproxy:*:15008:
7、做完这些,就可以到AD server上的活动目录中看到该机器了。
接下来介绍加入AD域后的一个简单应用,要不就不知道这样加有啥子用了。既然samba服务器已经加入AD域中,那自然会想到,window域中的本地帐号是否能访问linux机器呢?答案是肯定的。这就是winbind的作用了,当window域中的本地帐号需要登录linux主机时,winbind服务去ad服务器去验证该帐号是否合法,而不是到linux本地的/etc/passwd中去验证,当然如果要用不同的验证方式,就可以用pam去进行复杂的设定.
8、配置/etc/pam.d/system_auth
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so
account required /lib/security/$ISA/pam_unix.so broken_shadow
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_winbind.so
account required /lib/security/$ISA/pam_permit.so
password required /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_winbind.so use_authok
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
配置/etc/pam.d/sshd,使用ad帐号登录时,自动创建/home/LIZL/ad帐号目录
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account sufficient /lib/security/pam_winbind.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_limits.so
session required /lib/security/pam_mkhomedir.so
session optional /lib/security/pam_console.so
顺便配置下samba这个pam
#auth required pam_nologin.so
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
#session required pam_stack.so service=system-auth
#session required pam_mkhomedir.so skel=/etc/skel umask=0022
#password required pam_stack.so service=system-auth
好了,接下来享受下用ad帐号登录linux主机的快乐吧。

无题

你在那里
像你一样我在这里

在春雨的淅淅沥沥中
与你相遇

瞬间怎能记下
确已无法忘记

小河告诉我
它荡漾了一江的秋水
却只为迎接春雨

轻轻的脚步
和着随风飘起的长发
一路的草色嫩绿

error while loading shared libraries

在linux上安装的bin文件,有些是基于版本较为旧的内核开发,或者是基于32位系统的开发并在64位linux系统上运行,均可能出现如下错误,今天在安装一个软件时候就遇到下面的错误:
MyLinux~#./yourfile.bin
回车提示下面错误:
Extracting temporary installation utilities to /opt/temp…
Executing the installation GUI…
Preparing to install…
Extracting the installation resources from the installer archive…
Configuring the installer for this system's environment…
awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

Launching installer…
grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/temp/TEMP_ABAQUS_utils_root/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

Removing temporary installation utilities…
…finished.
解决方法:
cp yourfile.bin yourfile.bin.bak (so we have a working copy)
cat your.bin.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > /tmp/yourfile.bin
即对bin文件重新配置
之后,进入tmp目录(cd /tmp)执行bin文件。即可解决上述问题。

ubuntu 的一个彩蛋——wanda fish

在ubuntu图形界面下,按 alt+F2 ,在弹出的运行窗口中输入
free the fish
点回车,就会一条小鱼出来。
据我观察,它会不定时的从屏幕左边出来,游到右边消失。如果点一下,会更快的游走。

安装/卸载deb包文件

dpkg -i openq_0.3.2-2006_i386.deb (安装openq)
dpkg -l | grep openq (查找openq)
dpkg -r openq (删除openq)
dpkg –purge openq (删除openq的配置文件)

DBA应该具有的素质

作为一名DBA必须有全面知识,从技术角度来说,我们会分成两大块,硬件和软件支持。数据库运行到的设备都是大型设备,便宜一点像一些PC服务器,小的十几万,一些小型级50、60万,一些大型机价钱更贵了。我们要对硬件,主机比较了解,因为数据库直接运行在主机上,如果一个DBA对主机不熟悉,你怎么能说从何管理数据库,所以我们对主机这块必须非常了解。
另外除了对主机我们对磁盘阵列也必须了解,因为当前虽然技术发展,很多银行、证券公司,一些大的网站,他们都是提供7×24小时,7天24小时不间断运转,所以他们的设备,要提供一种高可用性,需要一些大型设备,磁盘阵列也要大型的。
另外DBA对网络也应该有一定了解,现在全球经济是你中有我,我中有你,为什么在这个金融危机发展的前期,各个国家都是各自为政来处理金融危机,但是各个国家包括美国,加拿大,其他国家采取一些措施对金融危机没有产生多大的效果。这次金融危机和美国以前发生的金融危机不一样,以前美国金融危机仅仅是美国一个国家的金融危机,而现在金融危机是全球性,一个公司在全球有很多分公司,它的网络在逻辑上是联在一起,作为一个DBA要管理可能不仅仅是你本地数据库,或者是你中国的数据库,可能你管理是全世界,这些数据库物理可能是分布在韩国日本,所以你对网络也有一定的了解,作为一个DBA硬件层次必须了解这几个方面。
软件方面我们也要了解,首先就是操作系统,我们数据库大部分运行在Linux等平台上,如果我们DBA对他们的系统不了解,那么我们无从管理他们的数据库,因为数据库是运行在操作系统之上,操作系统就是轴,轴功能不好,其他怎么能好的。软件包括操作系统,另外就是应用程序,我们一个数据库运行最终目的,是为了给外面人或者客户提供服务,就存在就是说我们要给其他应用程序提供一个交互,如果就是说你对应用程序如何访问数据库我们连这个原理都不了解,那么我们对数据库进行管理呢?
另外重要就是我们了解运用程序如何访问数据库,为什么这点非常重要,因为我们了解这个机制,我们才能知道如何提高我们数据库性能,如何提高我们数据库的最大化,这块其实我也想多讲一下,因为其实数据库经常会发生性能下降的问题,根据我这几年的经验分析,数据库性能降低60%,是和我们硬件有关,我们硬件已经达到极限,包括内存,CPU计算能力,网络传输能力已经达到极限,这些是40%。60%是我们数据库设置不当导致效率低下,我们进行数据库性能调整,第一点首先要着眼于60%的软件问题,40%是发展我们的硬件。
我们从大的方面讲了技术层面,但要想成为一个优秀DBA有两个方面,一个是技术,一个是文化层面。文化层面就是作为一个优秀的DBA,第一必须冷静,为什么呢,数据库经常发生一些问题,当你用数据库最新版本,把最新应用用到实际工作当中去会遇到很多问题,而且这些问题你在以前没有看到过,谷歌或者百度也找不到答案,遇到这种情况必须保持冷静。另外就是必须谨慎,当你在一个公司管理一个很重要数据库,出现问题的时候,首先你的客户,同事正在等待你解决问题,老板正在催促你,CTO在督促你,这个时候必须保持冷静,因为保持冷静才能静下心来,想方设法解决问题,找到这个问题答案。如果这个时候不冷静,找不到答案,还会给公司带来损失,或导致一些其他的故障。所以作为DBA冷静、谨慎这两点是非常重要的。
另外就是DBA必须有沟通的技巧,这也是非技术问题。大家知道作为一个DBA他要服务的对象很多,大家有时候觉得他是一个很神圣的角色,其实不是这样,DBA其实是一个很下面的角色,为什么呢?因为这个角色为很多人提供服务,你要为客户提供服务,要为其他客户提供支持,你要给开发人员提供技术培训,你要给你的CTO提供整个公司数据库的硬件和软件规划,还有要给你CTO提供性能方面咨询。所以作为一个DBA你要为很多人服务,还有特别是对市场人员,在竞标一个项目的时候,DBA需要为市场人员提供一些数据方面技术支持,所以DBA也需要和市场人员沟通,所以一个DBA做得好做不好,技术是一个层次,沟通也非常重要,跟客户沟通不好,得罪公司客户;和开发人员沟通不好,开发人员可能写不出来高效的程序,不和开发人员进行合作可能导致公司整个项目往后推了;不和市场人员沟通好,市场人员得出数据不利于这个公司发展;不和自己CTO沟通好,不知道你的CTO到底让你做什么,完成什么任务。所以DBA的沟通能力是非常重要的。
另外一点,作为一个DBA必须有挑战精神,为什么必须有挑战精神,因为数据库在不断发展,公司在不断壮大。当公司业务壮大,数据量不断壮大,我们需要一些高端设备,包括硬件软件,我们需要应用新的技术解决我们面临的问题,如果一个DBA没有挑战精神,几年以后你发觉你已经被整个IT业远远落在后面了,所以说一个DBA必须有挑战性,想方设法运用最新技术解决公司问题,新的技术能够让我们业务提高好几倍,所以说DBA另外一个精神就是必须有挑战精神。这就是说作为一个DBA必须要技术全面,第二就是必须谨慎,小心,有挑战精神。这仅仅是我作为一个DBA的感受。
DBA如何提升能力