杂诗
Posted On 2009年5月8日星期五 at 时间: 12:06:00 by David Lu其一
片片荷叶片片心,点点露珠点点情。
夕阳洒下碎碎金,不值菡萏立娉婷。
其二
天涯若比邻,脉脉相送,难挽此中行。
无语立伶仃,痴眼不他望,但见落晶莹。
DB学习开始
Posted On 2008年12月22日星期一 at 时间: 15:17:00 by David Lu最近在看Oracle,而公司用MySQL。
列出书目,DB的学习开始……
MySQL权威指南
Oracle 10g Administration I/II Study Guide
Oracle9i&10g编程艺术:深入数据库体系结构
深入浅出Oracle DBA 入门、进阶与诊断案例
循序渐进Oracle数据库管理、优化与备份恢复
Oracle的expdp和impdp问题
Posted On 2008年12月15日星期一 at 时间: 10:05:00 by David Lu昨天机子上用expdp和impdp做了数据的导入导出,
实验环境是:CentOS5.2+Oracle11g
以下是实验过程及结果:
1.expdp system/123456@orcl DUMPFILE=/home/oracle/test.dmp DIRECTORY=DATA_PUMP_DIR
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39088: file name cannot contain a path specification
(此处表明,指定DIRECTORY后,
2.expdp system/123456@orcl DUMPFILE=test.dmp DIRECTORY=DATA_PUMP_DIR
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 320 KB
******************************
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
/opt/oracle/admin/orcl/dpdump/
Job "SYSTEM"."SYS_EXPORT_SCHEMA_
(数据导入成功,然后也试验了impdp,同样可行。)
3.echo $DATA_PUMP_DIR
(用echo试图返回DATA_PUMP_DIR,
在10g上用expdp和impdp实验,均有问题。错误提示是logfile打不开以及目录名无效。用exp和imp就OK了。
更新:DATA_PUMP_DIR为oracle里的一个Directory Object,不是操作系统的环境变量。
xen虚拟机开启过多后用完loop设备问题(转载)
Posted On 2008年12月8日星期一 at 时间: 20:43:00 by David Luxen虚拟机开设超过4个后
会用完loop device
处理方法为
修改
/etc/modprobe.conf:
增加
options loop max_loop=64
执行
/sbin/rmmod loop
/sbin/modprobe loop
执行
ls -l /dev/loop* | wc -l
应该返回64
转载自“http://www.hiadmin.com”(架构研究室)Johnny Woo
腾讯十年 全因有你(转载)
Posted On at 时间: 15:13:00 by David Lu今年公司发的月饼已经不再是传统意义上的月饼,因为公司已经有十年了!这盒月饼有着极其重要的含义,真舍不得吃了,直接放图了吧:
这是去年的月饼照片。
转自TX员工xiaoxiao博客“http://blog.xiaoxiao.com.cn/2008/09/06/tencent-ten-years-and-moon-cake.html”腾讯的QQ月饼(转载)
Posted On at 时间: 13:43:00 by David Lu中秋快到了,每年都能收到公司的月饼祝福。今年的格外引入注目,忍不住放图了哈。
你绝对猜不到盒子里面装的有多少块月饼。
打开她,看到了吧。
打开最大的那盒,这个月饼是独一无二的:QQ月饼。
除了月饼,还有精品铁观音茶叶。体验做的也不错,还有刀叉。
早知道今年的这么帅,就填表格了。公司还能免费寄回家了孝敬父母了。花好月圆时,腾讯团圆月,祝各位中秋快乐,工作顺利。
转自TX员工xiaoxiao博客“http://blog.xiaoxiao.com.cn/2007/09/17/tencent-qq-of-moon-cakes.html”
oracle_11g_install
Posted On 2008年11月8日星期六 at 时间: 23:27:00 by David LuCentOS5.2 + oracle 11g
1. 用 root 登录你的 linux 系统图形环境 oracle 安装的时候需要图形接口
2. 硬件需求:
a. 至少 1G 的物理内存
b. swap 分区为 1.5~2 倍的物理内存
RAM Swap Space
Between 257 MB and 512 MB Double the size of RAM
Between 513 MB and 2048 MB 1.5 times the size of RAM
Between 2049 MB and 8192 MB Equal to the size of RAM
More than 8192 MB 0.75 times the size of RAM
c. /tmp 要有 150~200M 的容量,并且磁盘上要有 1.5~3.5G 的容量来安装 oracle 软件
Installation Type Requirement for Software Files (GB)
Enterprise Edition 3.47
Standard Edition 3.22
Custom (maximum) 3.45
3. 软件需求:
a. 操作系统: CentOS5.2
b. 内核需求: 2.6.18
c. 软件包需求:
binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
gcc-4.1.1-52
gcc-c++-4.1.1-52
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
4. 创建 Oracle 安装所需的组和用户:
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
5. 修改内核参数:
在/etc/sysctl.conf 中添加下列行
vm.min_free_kbytes = 1024
vm.swappiness = 10
fs.file-max = 65536
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
(以上参数的值都是推荐值,如果你本机的值更大的话,就无需更改;其中 fs.filemax 取值为512*PROCESSES)
运行: sysctl -p (使以上定义的值生效)
6. 为 oracle 用户设定 shell 限制:
a. 在/etc/security/limits.conf 中添加下列行
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
b. 在/etc/pam.d/system-auth 中确保有下列行
session required pam_limits.so
session required pam_unix.so
c. 在~oralce/.bash_profile 中添加如下
ulimit -u 16384 -n 65536
7. 创建 Oracle 安装目录并设制 oracle 用户的环境变量
a. 建立 Oracle 数据文件目录
mkdir -m 775 /opt/oracle
chown oracle:oinstall /opt/oracle
mkdir -m 775 /opt/oraInventory
chown oracle:oinstall /opt/oraInventory
b. 在~oracle/.bash_profile 中添加下列行
ORACLE_BASE=/opt/oracle
ORACLE_SID=orcl
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_SID ORACLE_HOME PATH
8. 安装 Oracle Database 11g
a. 使用 Oracle Universal Installer.(注意:执行“xhost +”命令,否则 oracle 用户不能使用当前图形接口;或者注销后使用 oracle 帐户登录)
b. 选择 Installation Type: Enterprise Edition(3.3GB) 输入 Database Password: tecent 单击 Next
c. 单击 Next.如果你没有创建 Inventory 目录,即/opt/oraInventory,则会出现错提示,点击 OK,重新指定 Inventory 目录, 设为 /opt/oracle/oraInventory 然后单击 Next.
d. 安装程序现在将验证系统是否满足安装和配置所选产品的最低要求,继续前改正任何
报告的错误,检查成功完成后,单击 Next.
e. Oracle Configuration Manager 允许你将配置信息与 Metalink 帐户相关联,你可在该窗口上选择启用它,否者直接单击 Next.
f. 查看 Summary 窗口,验证要安装的内容。然后单击 Install.
g. 安装进度显示.
h. Configuration Assistants 窗口显示.
i. 创建数据库
j. 数据库安装完成后,可以选择 Password Management解锁你要使用的用户,并更改密
码,或直接单击 OK.
k. 以 root 身份执行 orainstRoot.sh 和 root.sh
l. Oracle Database 安装完成,记住显示的 URL(我的是https://server.example.com:1158/em), 单击 Exit,Yes 退出.
m. 测试安装, 在浏览器中输入结束安装前显示的 URL,打开企业管理器登录界面,键入User Name 为 sys, Password 为 tencent, 选择 Connext As 为 SYSDBA,单击 Login.
9. 设置 Oracle 开机自启动
a. 修改/etc/oratab 文件
orcl:/opt/oracle/product/11.1.0/db_1:Y
b. 编辑/etc/init.d/oracled 启动和关闭脚本:
#!/bin/bash
#
# Oracle This shell script takes care of starting and stopping the ORACLE subsystem
#
# chkconfig: - 64 36
# description: ORACLE database server.
# processname: oracle
ORACLE_HOME=/opt/oracle/product/11.1.0/db_1
ORACLE_OWNER=oracle
prog=Oracled
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
start(){
if [ -f "$ORACLE_HOME/bin/dbstart" ] ; then
su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart $ORACLE_HOME
ret=$?
if [ $ret -eq 0 ] ; then
action $"Starting $prog: " /bin/true
else
action $"Starting $prog: " /bin/false
fi
[ $ret -eq 0 ] && touch /var/lock/subsys/oracled
return $ret
fi
}
stop(){
if [ -f "$ORACLE_HOME/bin/dbshut" ] ; then
su $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut $ORACLE_HOME
ret=$?
if [ $ret -eq 0 ] ; then
action $"Stoping $prog: " /bin/true
else
action $"Stoping $prog: " /bin/false
fi
[ $ret -eq 0 ] && rm -f /var/lock/subsys/oracled
return $ret
fi
}
restart(){
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|st p|restart}"
o
exit 1
esac
exit $?
c. 执行命令:chkconfig oracled on
10. 第一次安装的时候 OEM 启动正常,但重启后不会自动启动,如想用 OEM 管理数据库,执行以下命令:
emctl start dbconsole
--
知行合一
make_command for SQL_SASL_TLS
Posted On at 时间: 23:14:00 by David Lu# final
# total make file : Mysql, SASL, TLS
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lsasl2 -lssl -lcrypto'
--
知行合一
LAMP+MRTG+CACTI+IGENUS
Posted On at 时间: 22:58:00 by David Lu# Turn off SELINUX by edit /etc/selinux/config
MYSQL_VER="5.0.45"
APACHE_VER="2.2.6"
PHP_VER="5.2.5"
ZNED_VER="3.3.3-linux-glibc23-i386"
MYSQL_LOCATION="/usr/local/mysql5"
APACHE_LOCATION="/usr/local/apache2"
PHP_LOCATION="/usr/local/php5"
#Remove all existing main softwares
rpm -e `rpm -qa | grep php` --nodeps &> /dev/null
rpm -e `rpm -qa | grep mysql` --nodeps &> /dev/null
rpm -e `rpm -qa | grep httpd` --nodeps &> /dev/null
#Installing dependent development libraries
yum install gcc gcc-c++ openssl openssl-devel libtermcap-devel libxml2-devel gmp-devel gd-devel zlib-devel curl-devel net-snmp-devel libpng-devel libjpeg-devel freetype-devel -y &> /dev/null
#Installing MySQL
tar jxf mysql-$MYSQL_VER.tar.bz2 &> /dev/null
groupadd mysql
useradd -g mysql -c "MySQL Server" mysql
cd mysql-$MYSQL_VER
./configure --prefix=$MYSQL_LOCATION \
--with-charset=gb2312 \
--with-extra-charsets=all \
--enable-assembler \
--enable-thread-safe-client \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--without-debug &> /dev/null
make &> /dev/null && make install &> /dev/null
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig mysqld on
chown -R mysql.mysql $MYSQL_LOCATION/*
$MYSQL_LOCATION/bin/mysql_install_db --user=mysql &> /dev/null
chown -R root $MYSQL_LOCATION/*
chown -R mysql $MYSQL_LOCATION/var
ln -s $MYSQL_LOCATION/bin/* /usr/bin/
/etc/init.d/mysqld start &> /dev/null && echo "Mysql Success"; cd .. ; rm mysql-$MYSQL_VER -fr || echo "Mysql Failed"
#Installing Httpd
tar jxf httpd-$APACHE_VER.tar.bz2 &> /dev/null
cd httpd-$APACHE_VER
./configure --prefix=$APACHE_LOCATION \
--enable-ssl \
--enable-cgi \
--enable-cgid \
--enable-rewrite \
--enable-speling \
--enable-shared \
--enable-so &> /dev/null
make &> /dev/null && make install &> /dev/null
$APACHE_LOCATION/bin/apachectl start &> /dev/null && echo "apache success"; cd .. ; rm httpd-$APACHE_VER -fr || echo "apache fail"
ln -s $APACHE_LOCATION/bin/apachectl /usr/bin
#Installing libmcrypt
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure &>/dev/null && make &>/dev/null && make install &>/dev/null
#Installing PHP
tar jxf php-$PHP_VER.tar.bz2
cd php-$PHP_VER
./configure --prefix=$PHP_LOCATION \
--with-apxs2=$APACHE_LOCATION/bin/apxs \
--with-mysql=$MYSQL_LOCATION \
--with-openssl \
--with-snmp \
--with-gd \
--with-zlib \
--with-curl \
--with-libxml-dir \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-pear \
--with-gettext \
--with-gmp \
--with-mcrypt \
--disable-debug \
--enable-soap \
--enable-ftp \
--enable-sockets \
--enable-mbstring &> /dev/null
make &> /dev/null && make install &> /dev/null
cp php.ini-dist $PHP_LOCATION/etc/php.ini
cd .. ; rm php-$PHP_VER -fr
echo "AddType application/x-httpd-php .php .phtml " >> $APACHE_LOCATION/conf/httpd.conf
echo "" > $APACHE_LOCATION/htdocs/index.php
#DO NOT forget to add “index.php” under the section
#Installing ZendOptimizer
tar jxf ZendOptimizer-$ZEND_VER.tar.bz2
cd ZendOptimizer-$ZNED_VER
./install
http://www.cyberciti.biz/nixcraft/linux/docs/uniqlinuxfeatures/mrtg/
Author’s website
http://oss.oetiker.ch/mrtg/
--
知行合一
qmail antivirus antispam
Posted On at 时间: 22:34:00 by David Lu1. Installing spamassassin
yum install spamassassin -y
wget http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf -P /usr/share/spamassassin
chkconfig spamassassin on
service spamassassin start
2. Installing clamav
useradd -s /bin/false clamav
tar zxf clamav-0.94rc1.tar.gz
cd clamav-0.94rc1
./configure
make; make install
cp contrib/init/RedHat/clamd /etc/init.d
edit /usr/local/etc/clamd.conf and freshclam.log, comment “Example”
freshclam
chkconfig clamd on
service clamd start
3. Installing MDA
rpm -i maildrop-2.0.4-1.5Server.i386.rpm
rpm -i maildrop-devel-2.0.4-1.5Server.i386.rpm
rpm -i maildropman2.0.4-1.5Server.i386.rpm
4. Installing perl modules
tar zxf Time-HiRes-1.9715.tar.gz
cd Time-HiRes-1.9715; perl Makefile.pl; make; make install
tar zxf DB_File-1.817.tar.gz
cd DB_File-1.817; perl Makefile.pl; make; make install
tar zxf Sys-Syslog-0.26.tar.gz
cd Sys-Syslog-0.26; perl Makefile.pl; make; make install
tar zxf MIME-Base64-3.07.tar.gz
cd MIME-Base64-3.07; perl Makefile.pl; make; make install
5. Optional
tar zxf tnef-1.4.4.tar.gz
cd tnef-1.4.4; ./configure; make; make install
yum install sharutils unzip -y
6. Installing qmail-scanner
tar zxf qmail-scanner-2.05.tgz
cd qmail-scanner-2.05
./configure --admin test --domain example.com --unzip yes --no-QQ-check --qmail-queue-binary /var/qmail/bin/qmail-queue
./configure --admin test --domain example.com --unzip yes --no-QQ-check --qmail-queue-binary /var/qmail/bin/qmail-queue --install
/var/qmail/bin/qmail-scanner-queue.pl -g
7. Integration qmail and qmailscanner
edit /etc/tcp.smtp, add following lines
# No QmailScanner at all for mail from 127.0.0.1
127.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-queue"
# Use QmailScanner without SpamAssassin on any mail from the local network
192.168.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
# Use QmailScanner with SpamAssassin on any mail from the rest of the world
:allow,QMAILQUEUE="/var/qmail/bin/qmai-lscanner-queue.pl"
qmailctl cdb
qmailctl restart
--知行合一
postfix antivirus
Posted On at 时间: 22:19:00 by David Lu1. Install Spamassassin
a) yum install spamassassin -y
b) service spamassassin start
2. Install Fprot
a) wget http://files.fprot.com/files/linuxx86/fplinuxws.rpm
b) rpm -ivh fplinuxws.rpm
c) /usr/local/fprot/tools/check-updates.pl ( edit crontab if you want it to auto update)
3. Install MailScanner
a) Download from http://www.mailscanner.info/downloads.html
b) tar zxvf MailScanner-4.69.9-3.rpm.tar.gz
c) cd MailScanner
d) ./install.sh
e) mkdir /var/spool/MailScanner/spamassassin; chown postfix.postfix /var/spool/MailScanner/*
f) vi /etc/MailScanner/MailScanner.conf(change follow lines, like so)
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
Mta = postfix
Virus Scanners = fprot
Always Include Spamassassin report = yes
Use Spamassassin = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
g) echo /^Received:/ HOLD >>/etc/postfix/header_checks
postmap /etc/postfix/header_checks
(make sure uncomment header_checks in /etc/postfix/main.cf)
h) postfix stop; chkconfig postfix off
i) service MailScanner start
j) chkconfig MailScanner on
4. Virus test
a) Download “eicar.com” from http://www.eicar.org/anti_virus_test_file.htm
b) mail test include “eicar.com”.
加强贝式分析广告信件需要安装密码学演算和特征比对的 Razor Pyzor Dcc
1. Install Razor and Razor-agent
Download razor from: http://razor.sourceforge.net/
tar jxvf razor-agents-sdk2.07.tar.bz2
cd razor-agents-sdk2.07
perl Makefile.PL && make && make install
tar jxvf razo-ragents-2.84.tar.bz2
cd razor-agents-2.84
perl Makefile.PL && make && make install
razor-admin --register user= test@tencent.org -pass=test
2. Install Pyzor
wget http://jaist.dl.sourceforge.net/sourceforge/pyzor/pyzor-0.4.0.tar.bz2
tar jxvf pyzor-0.4.0.tar.bz2
cd pyzor-0.4.0
python setup.py build && python setup.py install
chmod -R a+rx /usr/share/doc/pyzor /usr/lib/python2.4/site-packages/pyzor /usr/bin/pyzor
/usr/bin/pyzord
3. Install DCC
wget http://www.rhyolite.com/anti-spam/dcc/source/dcc.tar.Z
tar zxvf dcc.tar.Z
cd dcc-1.3.90
./configure && make && make install
--
知行合一
squid+mysql
Posted On at 时间: 21:52:00 by David Lusquid 用户认证
htpasswd /etc/squid/passwd test
chown root:squid /etc/squid/passwd
chmod 640 /etc/squid/passwd
acl INTERNAL src 192.168.0.0/24
acl AUTHUSERS proxy_auth REQUIRED
http_access allow INTERNAL AUTHUSERS
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid - Home Proxy Server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
service squid reload
squid+mysql 认证
yum install gcc mysql mysql-server mysql-devel y
wget http://people.arxnet.hu/airween/mysql_auth/mysql_auth-0.8.tar.gz
tar zxf mysql_auth-0.8.tar.gz
cd mysql_auth-0.8
修改 Makefile
CFLAGS = -I /usr/include/mysql -L/usr/lib/mysql
$(INSTALL) -o squid -g squid -m 755 mysql_auth /usr/local/libexec/mysql_auth
$(INSTALL) -o root -g root -m 700 mypasswd /usr/local/bin/mypasswd
$(INSTALL) -o squid -g squid -m 600 $(CONF) /usr/local/etc/mysql_auth.conf
$(INSTALL) -o squid -g squid -m 600 $(CONF) /usr/local/etc/mysql_auth.conf.default
修改 src/mysql_auth.conf
mysqld_socket /var/lib/mysql/mysql.sock
修改 src/mypassword.c
#include
修改 src/mysql_auth.c
#include
make && make install
cd scripts/
mysql <>
mypasswd test test
测试用户
mysql_auth
test test
OK!
在/etc/squid/squid.conf 中增加 mysql_auth 认证
添加下面的代码到"TAG: acl"一节的后面
auth_param basic program /usr/local/bin/mysql_auth
auth_param basic realm Squid caching server
auth_param basic children 5
auth_param basic credentialsttl 2 hours
acl password proxy_auth REQUIRED
http_access allow password
service squid start
--
知行合一
rhel5.1+pptpd+freeradius+mysql
Posted On at 时间: 21:30:00 by David Luyum install ppp -y
modprobe ppp-compress-18
wget http://poptop.sourceforge.net/yum/stable/rhel5/i386/pptpd-1.3.4-1.rhel5.1.i386.rpm
rpm -i pptpd-1.3.4-1.rhel5.1.i386.rpm
pptpd 的配置文件 /etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.234-238
localip: pptpd server 所在服务器 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址
remoteip: 设置客户端连接到 pptpd server 后可供分配的 Ip 地址范围
添加测试用户/etc/ppp/chap-secrets
#client server secret IP addresses
david pptpd tencent *
(服务器名称必须和 options.pptpd 中 name 处设置的名称一致,否则登录验证无法通过)
service pptpd start
netstat -antlp | grep:1723
现在可以用 david 测试了!
支持 freeradius
yum install freeradius freeradius-mysql -y
wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz
tar zxf ppp-2.4.4.tar.gz
mkdir /etc/radiusclient
cp ppp2.4.4/pppd/plugins/radius/etc/* /etc/radiusclient
cd /etc/radiusclient
在 servers 中添加 radius 的地址和密码
#Server Name or Client/Server pair Key
# -------------------- ----------------------
#portmaster.elemental.net hardlyasecret
#portmaster2.elemental.net donttellanyone
localhost tencent
在 radiusclient.conf 中确保 radiusclient 所有相关的路径都是/etc/radiusclient 开头的
修改/etc/ppp/options.pptpd
plugin /usr/lib/pppd/2.4.4/radius.so
cd /etc/raddb
修改 clients.conf
client 127.0.0.1 {
secret = tencent (与/etc/radiusclient 中 servers 里设置的一致)
shortname = localhost
nastype = other
}
支持 mysql
修改/etc/raddb/radius.conf
$INCLUDE ${confdir}/sql.conf (去掉注释)
authorize {
#files
sql
....
}
accounting {
#radutmp
sql
....
}
session{
#radutmp
sql
}
postauth {
sql
}
修改/etc/raddb/sql.conf
sql {
driver = "rlm_sql_mysql"
server = "localhost"
login = "radius"
password = "radius"
radius_db = "radius"
去掉 205 行 simul_count_query 的注释
....
}
yum install mysql mysql-server mysql-devel -y
service mysqld start
cd /usr/share/doc/freeradius-1.1.3/examples
mysqladmin create radius
mysql radius < face="arial">mysql> grant all on radius.* to radius@localhost identified by 'radius';
mysql> flush privilieges;
mysql> use radius;
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','AuthType',':=','Local');
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User');
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.254');
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
mysql> insert into radcheck (username,attribute,op,value)values ('test','User-Password',':=','test');
mysql> insert into usergroup (username,groupname)values ('test','user');
Now you can use user "test" to test : )
--
知行合一
Extend modules for Iptables on CentOS 5.1
Posted On at 时间: 21:13:00 by David Lutar jxf iptables-1.3.5.tar.bz2
tar jxf patch-o-matic-ng-20080709.tar.bz2
cd /root/patch-o-matic-ng-20080709
yum install kernel-devel -y
KERNEL_DIR=/usr/src/kernels/2.6.1853.el5-i686 IPTABLES_DIR=/root/iptables1.3.5 ./runme --download
KERNEL_DIR=/usr/src/kernels/2.6.1853.el5-i686 IPTABLES_DIR=/root/iptables1.3.5 ./runme connlimit
KERNEL_DIR=/usr/src/kernels/2.6.1853.el5-i686 IPTABLES_DIR=/root/iptables1.3.5 ./runme time
KERNEL_DIR=/usr/src/kernels/2.6.1853.el5-i686 IPTABLES_DIR=/root/iptables1.3.5 ./runme ipp2p
Do you want to apply this patch [N/y/t/f/a/r/b/w/q/?] y
cd /usr/src/kernels/2.6.1853.el5-i686
make oldconfig
Connections/IP limit match support (IP_NF_MATCH_CONNLI IT) [N/m/?] (NEW) m
make modules_prepare
mv net/ipv4/netfilter/Makefile net/ipv4/netfilter/Makefile.bak
vi net/ipv4/netfilter/Makefile
objm := ipt_connlimit.o ipt_time.o ipt_ipp2p.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD)modules
make M=net/ipv4/netfilter/
cp net/ipv4/netfilter/ipt_connlimit.ko /lib/modules/2.6.1853.el5/kernel/net/ipv4/netfilter/
cp net/ipv4/netfilter/ipt_time.ko /lib/modules/2.6.1853.el5/kernel/net/ipv4/netfilter/
cp net/ipv4/netfilter/ipt_ipp2p.ko /lib/modules/2.6.1853.el5/kernel/net/ipv4/netfilter/
chmod 744 /lib/modules/2.6.1853.el5/kernel/net/ipv4/netfilter/ipt_connlimit.ko ipt_time.ko ipt_ipp2p.ko
cd /root/iptables-1.3.5
make KERNEL=/usr/src/kernels/2.6.1892.el5-i686/
make install KERNEL=/usr/src/kernels/2.6.1892.el5i686/ BINDIR=/sbin LIBDIR=/lib
MANDIR=/usr/share/man
depmod -a
modprobe ipt_connlimit
modprobe ipt_time
modprobe ipt_ipp2p
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT
iptables -A OUTPUT -p tcp --dport 80 -m time --timestart 14:00 --timestop 18:00 -days Thu,Sun -j REJECT
iptables -A FORWARD -p tcp -m ipp2p --edk --bit -j DROP
ok!
--
知行合一
INSTALL MPlayer
Posted On 2008年11月5日星期三 at 时间: 18:40:00 by David Lu既然装上了声卡驱动,也就顺带着手把影音播放器也装了吧: )
mkdir -m 644 /usr/lib/codecs
mkdir -m 644 /usr/lib/win32codecs
chown -R root.root /usr/lib/codecs/*
chown -R root.root /usr/lib/win32codecs/*
tar jxf Blue-1.7.tar.bz2
tar jxf MPlayer-1.0rc2.tar.bz2
tar jxf all-20071007.tar.bz2 -C /usr/lib/codecs/
unzip windows-all-20071007.zip -d /usr/lib/win32codecs/
cd MPlayer-1.0rc2
./configure --enable-gui --enable-largefiles --enable-menu --prefix=/usr/local --codecsdir=/usr/lib/codecs/ --win32codecsdir=/usr/lib/win32codecs/ --confdir=/etc/mplayer --language=zh_CN
make && make install
mv Blue/ /usr/local/share/mplayer/Skin/default
# 此处Skin的S须大写,而默认为小写,对应default也要自行创建
ln -s /usr/share/fonts/chinese/TrueType/uming.ttf ~/.mplayer/subfont.ttf
vi ~/.mplayer/config
编辑内容如下:
# Write your default config options here!
# 视频输出以xv模式,启用视频加速
vo = xv
# 字幕字体文件
# font = /usr/share/fonts/zh_CN/TrueType/uming.ttf
# 字幕编码 (使用TTF字体时使用)
subcp = cp936
# 0 不自动缩放; 1 按电影高度缩放; 2 按宽度; 3 按对角线
subfont-autoscale = 2
# 字幕字体大小
subfont-text-scale = 5
# 设置OSD元素的自动绽放系数
#subfont-osd-scale = 6
#font = /home/simsun.ttf
#subcp = cp936
#subfont-autoscale = 1 #这是控制自动装载字幕的,2和0都是不自动
#subfont-text-scale =7 #字体大小
附:mplayer相关下载地址:
Mplayer安装包:http://www.mplayerhq.hu/design7/dload.html
Mplayer 视频解码包: http://www.mplayerhq.hu/design7/dload.html
Mplayer 皮肤包: http://www.mplayerhq.hu/design7/dload.html
Mplayer 字体包: http://www.mplayerhq.hu/MPlayer/contrib/fonts/
--
知行合一
INSTALL ALSA
Posted On at 时间: 18:19:00 by David LuALSA出了新版本,v1.0.18,便又把声卡驱动装了第N+!遍,只盼着能解决三年以来Linux下一直没声音的痛苦。针对Intel ICH8系列,之前装ALSA,每装一次失望一次,而今天的确是个值得纪念的日子,我终于听到渴望已久的声音!
步骤简单,但意义非凡,权且做个记录吧: )
tar jxvf alsa-driver-1.0.18.tar.bz2
tar jxvf alsa-lib-1.0.18.tar.bz2
tar jxvf alsa-utils-1.0.18.tar.bz2
接下来便是编译“三步曲”了
./configure && make && make install
需要注意的是,对alsa-driver-1.0.18稍有不同
./configure --with-cards=hda-intel && make && make install
一切顺利!接下来便是一些简单的配置
alsaconf
alsamixer
测试一下,感受美妙的声音吧: )
system-config-soundcard
别忘了,同时也有了一些噪声……
xset b off
--
知行合一
offer之路(三)
Posted On 2008年10月28日星期二 at 时间: 01:00:00 by David Lu一天后,接到三面通知。21号还是去了2737房间,原来这个才是HR。
一来便要我的获奖证书,一个一个看,一个一个BS。
“我看你成绩不怎么样嘛,都七八十的样子。”
“大一刚去,可能还不太适应。大二课程里八九十还是不少的。大三时研究Linux,可能分散了时间和精力,所以专业成绩并不高。”
“这个三好学生你们班里有几个?”
“不是班里的,占学生总数的5%”
“院级的,近百个参赛团队,一等奖只有一个。”
“成绩一般,怎么拿到三好学生的?”
“……”
(以上省去大堆被BS的提问)
“现在给你三分钟的时间,说服我,让我觉得你这个本科生比其他研究生更有优势更能胜任这个职位”
……
原来这就是所谓的压力面试,怎一个汗字了得。
然后也没多说,直接说了实习期间月薪XXXX,转正后XXXX,年薪XW,税前,能不能接受?
当然不能一两个字了结,说了薪水事小,发展空间事大。但事实也的确如此。
最后让我和家人商量一下,当天给他一个肯定答复。
就是这个答复让俺茶不思饭不想,终面完了一点也不抽抽,还有哈姆雷特式的烦恼。
因为刚出来,便看到自己有一个未接来电,百度打来的。坐电梯时,又打了过来,预约第三次电话面试,也是百度的终面……
22号,得到腾讯公司的offer通知,让24号去参加签约会。
签约会上,知道了西安地区参加笔试的有5000多人,而最终收到offer的,也才160左右。自信心又一次增强: )
记得将收到offer的消息通知朋友们时,他们比我还激动,唉,都是Q币惹的祸: )
说起百度的面试,其实也有点运气了。十一之前投了百度的大规模集群系统管理一职,也是自己投的第一个职位。8号便得到了第一次面试机会,而当时统一的笔试还根本没开始,这就不能不说是网投的简历的作用了。也可能因为职位比较冷门,其他人怕是见了职位名称便敬而远之了吧。正因如此,在西交大举行的统一笔试也没参加。
一面对技术细节比较注重,但有些问题,没接触过就不知从何说起,只好老实地说不会了,所以一面感觉很一般,自己说的最多的也是“不好意思”。
一周后,接到二面电话通知。二面对广度和深度都有要求。还具体到了LAMP搭建时,Apache编译的具体参数,汗一个。当然还少不了对集群架构的提问,包括HA、LVS……还问了遇到网络问题后的解决思路和方法。但对自己的表现还是相当满意的。
一周后,也就是21号腾讯面试完,接到了百度的三面通知,HR面。准备了一系列综合问题的回答,没想到22号下午一个小时的面试,技术占了40分钟……最后当问到有什么问题要问时,便说了自己已经收到腾讯的offer了,24号签约,但因为百度是自己应聘的第一个公司,职位也很喜欢。所以对这个情况不想隐瞒。希望能尽快答复,最好能在24号之前。当问及联系方式时,HR说会及时邮件通知的。
百度的三次面试官都很nice,很有亲和力,技术没得说。期间也体会到了百度的企业文化:分享。但觉得不解的是,三次面试时间都比预定时间推迟了半个或一个小时。虽然面试官一来就表示歉意,但“惜时”也是百度的文化,难道这种惜时是建立在浪费他人时间上的吗?
虽然个人觉得百度的职位比腾讯的更有发展空间,但从底层做起也未尝不是一件好事,也算是为自己以后系统架构师(或信息安全分析师)的目标积累经验吧。再者,与腾讯三方已签,毁约也与我的个人原则相违背。若有幸进了百度也会不安的。
所以,我也不再有什么牵挂。胸中磊落,心中沉静。
现在我有更多的时间去做我的喜欢的事情:Linux,中医。当然还要抓紧时间锻炼身体,老爸常说,身体是革命的本钱。此至理也。
至此,offer之路结束,与其说是找寻工作之路的终结,倒不如说是心路之旅的一个里程碑。这不是终点,而是起点。一个全新的开始。
后记:
--
知行合一
offer之路(二)
Posted On 2008年10月27日星期一 at 时间: 23:00:00 by David Lu回来等下一面通知的过程是痛苦的。腾讯招聘群里已经接到二面通知的都是17号面试,14,15号就通知了。而我却一直没动静。心想自己不会挂了吧,面试官骗俺……
就在望穿秋水之际,终于在17号接到了电话通知,恭喜我通过了一面,18号二面。激动之情溢于言表。官方招聘流程上写的笔试完后,要经过技术一面、技术二面,综合面和HR面。于是便准备了一晚上的技术二面,第二天信心百倍地去了面试地点,2737房间。
面试官要了我的简历,说你去2710房间吧,在那儿面试。
于是又去了2710房间,门开着,看了看表,离通知的时间还有10分钟,便在门外等着。后来见里面的面试官等不住拿起电话正准备打时,便敲了敲门,面试官见了我就放下了电话。进去坐下后,便进入正题。
“你是本科生?”
“是的”,觉得被BS了,又有点自豪,因为进二面的研究生占了大部分。
“有没有什么项目经验?”
“没有”
“参加过数学建模竞赛?说说这个吧”
于是便对自己的竞赛题目和内容做了概述,包括思路、实现方法、总结和改进等,然后介绍了自己在其中担任的角色和起到的作用。一开始还有些紧张,语速很快,而事实是,自己对综合面根本一点准备都没有,全准备的是技术方面的,回答这些全凭之前模糊的印象!
“还担任过宣传部部长?有什么收获?你对这个职位在意吗?”
我 说自己因为对书法的喜爱而在大一时就加入了宣传部,后来由于表现突出被选为部长。自己认为宣传部从某种意义上来说不同于其他的行政管理部门,而更像是艺术 汇集地,所以我更倾向于让部员们自由发挥他们的才华,不太喜欢通过管理手段来束缚他们。期间收获最大的应该是结识了很多朋友,与他们的交流中我受益良多。 管理能力也有所锻炼。
“我看你个人兴趣里还有传统中医?”
虽 然没有丝毫准备,但迎着从窗口射进来的金色阳光,我说了自己对古典文化的喜爱以及对中医的兴趣,比较崇尚其中健康的生活方式和处世心态。当时内心的平静让 自己都觉得惊讶。还背了《黄帝内经》素问的开篇,上古天真论。从而得出“恬淡虚无,真气从之,精神内守,病安从来”的结论。随后说自己所喜爱的Linux和中医有个共同点。接着片刻的停顿,面试官明显的哦了一声,抬头看着我,等着下文。
我说大道至简,一些至理都是相通的。它们的共同点就是,都有其自己的哲学。中医提倡天人合一,回归自然。万物皆有联系,治病但求其本。是动态地看待问题,这不同于西医的千人一方,它是真正的唯物主义。而Unix/Linux提倡K.I.S.S原则,即”Keep It Simple, Stupid”。一次只完成一件简单的事情,并把它做到最好。管道的发明者可能也没想到自己小小的设计当与其他命令结合在一起时发挥的威力是如此之大。我想正因如此才使我对它们感兴趣的吧。
接下来的问题让我有点措手不及。
“那你看,咱们IT行业,程序员的工作可能与你的中医养生有所违背,你在数学建模期间也没少熬夜吧……这你如何解释呢?”
刚才不停的说已经让我口干舌燥了,这个问题让我觉得更渴了……
稍微整理了一下思路,从矛盾论、二分法入手。说了中医养生对IT工作的积极促进作用,重要的是要找到二者的平衡点。因为这还涉及到一个工作的积极性问题,我说贵公司向来十分珍惜人才,对员工的健康也相当重视吧。我有点底气不足。面试官笑了笑,还好没在这个上面纠缠太久。
还问了比如“老师同学以及你对自己的评价是什么”“总部在深圳,为什么工作地点要选北京?”“成绩不错,为什么不考研?”“通信专业,为什么不去通信运营商或设备制造商?”等问题,也费了一些气力。
当问到“你觉得我还有什么没问到的吗?”时,我直接回答说,没有了……
和人握手时,发现自己手心全是汗。好像也没说谢谢之类的话就闪了,出来也没把门带上……估计被问傻了。
--
知行合一
offer之路(一)
Posted On at 时间: 22:30:00 by David Lu窗外阳光明媚,天高云淡,一如我此时的心情。
从参加腾讯的笔试到最终拿到offer,总共历时12天。期间有紧张焦急、迷茫困惑,有兴奋激动,两难选择,但更多的是对自己的肯定,对勇气和信心的磨练。无论如何,这都是我人生中一次难忘的经历。因为我已经迈出了从校园到社会的第一步。
递上表格的同时,我问道:“您是xx先生吗?”
“你怎么知道?”面试官明显比较惊讶。
“填表时,看到面试房间后面有您的名字”我窃喜。
“哦,先自我介绍一下吧”
演练过N次的内容再熟悉不过,于是又来了N+1次。
然后便是一系列的Linux方面的专业问题,问了些常用的系统管理命令,见我都答上了,紧接着又问了LAMP平台的搭建、数据库常用命令、内核编译的过程、还问了些具体的故障排除,比如若能登上FTP但不能Telnet,你觉得是什么问题?于是便把自己解决网络问题的整体思路说了一下,面试官也比较满意。接着让写个小程序,当时大脑短路,用awk的同时还用上了for循环,汗一个。面试官起身转了一圈见我还在纸上画着,看纸上的程序其实已经很接近了,便在旁边提示着,后来见我面露难色便也作罢。又问我C语言如何,我说大一时学的,快忘完了。面试官笑了笑说,那我也就不问你了。
看我简历上写的在CU论坛上参与了Linux认证考试书籍的翻译。面试官便问我在论坛上的ID号和等级……想起自己在论坛的等级是“骑士”,便笑了笑说了。对方在本本上敲了一阵问,怎么没有呢?我起身来到电脑旁,见自己用户名对应的CU博客的确不存在,而此时面试官一副似笑非笑的表情望着我,狂汗……
我说我来吧,在Google里输入自己的用户名,第一个就是。阿门。
面试官看了看我翻译的内容,说道:“能翻译书籍,英语水平应该不错吧”。
我傻傻地回答道:“过了六级,能日常交流”
“那用英语自我介绍一下吧”
没想到会来这一招,愣了一下,深呼吸,然后便翻译起自我介绍来,说了不到一分钟,面试官说可以了。舒了口气,心想再不喊停也没的说了。
这时面试官自言自语说,恩,还不错,是今天Linux方面表现最好的。
暗喜,觉得自己有戏。
对方正看着,房间里又进来了一个面试官。问道:“还没完?”这才知道,预定的半个小时面试时间已经过了。进来的面试官拿了我的简历看了看,问我是CU的版主吗?答曰:不是。又问:“对网络设计方面有没有经验?”我摇头,“没有”。
面试官说:“你有什么要问的吗?”
于是便问了腾讯内部服务器的版本和数据库种类。
“好,今天我们就到这儿吧”
突然记起自己还拿了证书来,便说“我还带了获奖证书来,您要不要看?”得到许可后,便把证书尽数拿出,见对方看完后,便起身告辞。
出来心情不错,对门口的下一位面试者说道“祝你好运”,对方报以感激的微笑。
--
知行合一
Basic configuration of CentOS5.2
Posted On 2008年10月5日星期日 at 时间: 19:01:00 by David Lu2. vi -> vim
3. chkconfig bluetooth cups iptables ip6tables setroubleshoot off
4. vi /etc/hosts
5. create yum repository:
cp -r /media/CentOS/ /var/ftp/pub/
rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
6. Chinese Support
7. install startdic dictionary:
mkdir /usr/share/stardict/dic
tar jxf stardict-*.tar.bz2 -C /usr/share/stardict/dic/
8. virtualization Support
9. vi grub.conf
10. Support NTFS:
yum install gcc kernel-xen-devel -y
cd fuse-2.7.3 && ./configure && make && make install
cd ntfs-3g-1.2712 && ./configure && make && make install
vi /etc/fstab
mount -a
11. install wine:
cd wine-1.0
./configure
yum install flex bison libX11-devel freetype-devel -y
make depend && make && make install
( error occurd : lack of “lXext”. Installed group packages of “X Software Development” and “GNOME Software Development”, resolved )
12. online
/sbin/adsl-setup
wine drcomclient.exe
cd /root/.wine/drive_c/Program\ Files/PPOE\ Client/
wine ishare_user.exe
( error : need to import dll library in Windows. So just copy Packet.dll, WanPacket.dll, npptools.dll and mfc42u.dll in /media/system/WINDOWS/system32/ to `pwd`)
wine ishare_user.exe &
( attention: when run ishare program,you should in the default directory, or else it can not read the configuration file )
ifup ppp0