正则表达式:

vi使用

sed使用

awk使用

以原创的观点谈论WEB2.0世界的那些事。
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
struct sockaddr_in server;
int sock;
char buf[32];
int n;
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
perror("socket");
exit(1);
}
server.sin_family = AF_INET;
server.sin_port = htons(1234);
server.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(sock, (struct sockaddr *)&server, sizeof(server)) != 0){
perror("connetc");
exit(1);
}
n = read(sock, buf, sizeof(buf));
if(n < 0) {
perror("read");
return 1;
}
printf("%d, %s\n", n, buf);
close(sock);
return 0;
}
gcc -o client client.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
int sock0;
struct sockaddr_in addr;
struct sockaddr_in client;
int len;
int sock;
sock0 = socket(AF_INET, SOCK_STREAM, 0);
if (sock0 < 0) {
perror("socket");
return 1;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(1234);
addr.sin_addr.s_addr = INADDR_ANY;
if(bind(sock0, (struct sockaddr *)&addr, sizeof(addr)) != 0) {
perror("bind");
return 1;
}
if (listen(sock0, 5) !=0) {
perror("listen:");
return 1;
}
while (1) {
len = sizeof(client);
sock = accept(sock0, (struct sockaddr *)&client, &len);
if (sock < 0) {
perror("accept:");
break;
}
printf("accepted connection from %s\n",
inet_ntoa(client.sin_addr));
if(send(sock, "Hello", 5, 0) < 1) {
perror("write:");
return 1;
}
close(sock);
}
close(sock0);
return 0;
}
gcc -o server1 server1.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
int sock0;
struct sockaddr_in addr;
struct sockaddr_in client;
int len;
int sock;
int yes = 1;
sock0 = socket(AF_INET, SOCK_STREAM, 0);
if (sock0 < 0) {
perror("socket");
return 1;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(1234);
addr.sin_addr.s_addr = INADDR_ANY;
setsockopt(sock0,
SOL_SOCKET, SO_REUSEADDR, (const char *)&yes, sizeof(yes));
if(bind(sock0, (struct sockaddr *)&addr, sizeof(addr)) != 0) {
perror("bind");
return 1;
}
if (listen(sock0, 5) !=0) {
perror("listen:");
return 1;
}
while (1) {
len = sizeof(client);
sock = accept(sock0, (struct sockaddr *)&client, &len);
if (sock < 0) {
perror("accept:");
break;
}
printf("accepted connection from %s\n",
inet_ntoa(client.sin_addr));
if(send(sock, "Hello", 5, 0) < 1) {
perror("write:");
return 1;
}
close(sock);
}
close(sock0);
return 0;
}
gcc -o server2 server2.c
./server1
./clinet
5, Hello
bind: Address already in use
sudo apt-get install manpages-dev
sudo apt-get install manpages-zh
man read |grep ^read
zhou@lingjie:~$ man -k read |grep ^read
man 2 read
iptables -A INPUT -p tcp -s 219.x.x.x -d 220.x.x.x --dport 5300 -j ACCEPT
iptables -A PREROUTING -s 219.x.x.x -d 220.x.x.x -p tcp --dport 5300 -j DNAT --to-destination 221.x.x.x
iptables -A POSTROUTING -p tcp --dport 5300 -j SNAT --to-source 220.x.x.x
iptables -A PREROUTING -d 221.x.x.x -p tcp --dport 5300 -j DNAT --to-destination 192.168.0.6:3306
iptables -A POSTROUTING -p tcp --dport 3306 -j SNAT --to-source 192.168.0.5
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.1;
range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.0.4;
filename "pxelinux.0";
}
}
service dhcpd start
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = dpan
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -m /tftpboot/rules -vv
disable = no
}
ri ^[a-z]: # Remove “drive letters”
rg \\ / # Convert backslashes to slashes
rg \# @ # Convert hash marks to @ signs
rg /../ /..no../ # Convert /../ to /..no../
rg A a
rg B b
rg C c
rg D d
rg E e
rg F f
rg G g
rg H h
rg I i
rg J j
rg K k
rg L l
rg M m
rg N n
rg O o
rg P p
rg Q q
rg R r
rg S s
rg T t
rg U u
rg V v
rg W w
rg X x
rg Y y
rg Z z
r ^/(.*) \1
service xinetd start
[global]
null passwords = true
workgroup = MYGROUP
server string = Samba Server
security = share
load printers = no
disable spoolss = yes
debug level = 2
log file = /var/log/samba/%m.log
max log size = 0
dns proxy = no
[wininstall]
path = /tftpboot
browsable = true
read only = No
writable = yes
guest ok = Yes
wget http://www.cabextract.org.uk/cabextract-1.2-1.i386.rpm
rpm -ivh cabextract-1.2-1.i386.rpm
mkdir /tftpboot/win2k3
mount -o loop /dpan/windows2003.iso /mnt
cp -r /mnt/* /tftpboot/win2k3
cd /tftpboot
cabextract win2k3/i386/startrom.n1_
sed -i -e 's/NTLDR/W2K3L/gi' startrom.n12
mv startrom.n12 /tftpdpan/w2k3.0
cabextract win2k3/i386/setupldr.ex_
sed -i -e 's/winnt\.sif/wi2k3\.sif/gi' setupldr.exe
sed -i -e 's/ntdetect\.com/ntdetect\.2k3/gi' setupldr.exe
mv setupldr.exe /tftpdpan/w2k3l
cp win2k3/i386/ntdetect.com /tftpdpan/ntdetect.2k3
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
mkdir /tftpboot/pxelinux.cfg
default win2k3
label win2k3
kernel w2k3.0
[data]
AutoPartition = "0"
floppyless = "1"
msdosinitiated = "1"
UnattendedInstall = "Yes"
OriSrc = "\\192.168.0.4\wininstall\win2k3\i386"
OriTyp = "4"
LocalSourceOnCD = "1"
DisableAdminAccountOnDomainJoin = "1"
[SetupData]
OsLoadOptions = "/fastdetect"
SetupSourceDevice = "\Device\LanmanRedirector\192.168.0.4\wininstall\win2k3"
[Unattended]
UnattendMode = "FullUnattended"
FileSystem = "LeaveAlone"
NtUpgrade = "No"
OverwriteOemFilesOnUpgrade = "No"
DriverSigningPolicy = "Ignore"
UpdateInstalledDrivers = "Yes"
ConfirmHardware = "No"
ExtendOEMPartition = "0"
TargetPath = "\WINDOWS"
UnattendSwitch = "Yes"
WaitForReboot = "No"
CrashDumpSetting = "0"
OemSkipEula = "Yes"
OEMSkipWelcome = "1"
InstallFilesPath = "\\192.168.0.4\wininstall\win2k3\i386"
LegacyNIC = "1"
[UserData]
ProductKey = "11111-11111-11111-11111-11111"
FullName = "abc"
OrgName = "xyz"
ComputerName = *
[GuiUnattended]
AdminPassword = 123456
EncryptedAdminPassword = "No"
OEMSkipRegional = "1"
TimeZone = "220"
OemSkipWelcome = "1"
[Identification]
JoinWorkgroup = WORKGROUP
[RemoteInstall]
Repartition = "No"
UseWholeDisk = "No"
[Networking]
InstallDefaultComponents = "Yes"
wget http://www.broadcom.com/docs/driver_download/NXII/win_2k3_RIS-5.0.0.zip
mkdir -p /tftpdpan/nicdriver
unzip win_2k3_RIS-5.0.0.zip -d /tftpdpan/nicdriver
@ echo off
@ color 0a
@ echo 安装网卡驱动中。。。。。 2>>%HOMEDRIVE%/errlog.txt
@ cd DrvInst 2>>%HOMEDRIVE%/errlog.txt
BDrv5706.msi /qn 2>>%HOMEDRIVE%/errlog.txt
if %errorlevel% EQU 0 (
@ echo 网卡驱动安装成功 2>>%HOMEDRIVE%/errlog.txt
@ cd ..
@ goto win2k3sp2 2>>%HOMEDRIVE%/errlog.txt
) else (
@ echo 网卡驱动安装失败 继续安装WINDOWS_2003_SP2 补丁 2>>%HOMEDRIVE%/errlog.txt
@ cd ..
@ goto win2k3sp2 2>>%HOMEDRIVE%/errlog.txt
)
:win2k3sp2
@echo 安装WINDOWS_2003_SP2补丁中。。。。 2>>%HOMEDRIVE%/errlog.txt
sp2.exe /passive /norestart 2>>%HOMEDRIVE%/errlog.txt
if %errorlevel% EQU 0 (
@ echo WINDOWS_2003_SP2补丁安装成功 2>>%HOMEDRIVE%/errlog.txt
) else (
@ echo WINDOWS_2003_SP2补丁安装失败 详细见errlog日志 2>>%HOMEDRIVE%/errlog.txt
)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\netBT\Parameters]
"SMBDeviceEnabled"=dword:0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"RestrictAnonymous"=dword:1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"SynAttackProtect"=dword:1
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableCAD"=dword:1
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DontDisplayLastUserName"=dword:1
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DontDisplayLockedUserId"=dword:3
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DontDisplayLastUserName"=dword:1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:12345
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
"PortNumber"=dword:12345
@ echo off
for %%i in (d,e,f,g,h) do mountvol %%i: /D > nul
%windir%\system32\diskpart /s %systemdrive%\diskpart.txt
echo y | format D: /FS:NTFS /V:GAME /Q /X /A:4096
if %errorlevel% EQU 0 (
@ echo format D: success....
) else (
@ echo format D: fail....
)
echo y | format E: /FS:NTFS /V:OTHER /Q /X /A:4096
if %errorlevel% EQU 0 (
@ echo format E: success....
) else (
@ echo format E: fail....
)
select disk 0
create partition extended
create partition logical size=30800
assign letter=D
create partition logical
assign letter=E
@ echo off
@del /f /q %WINDIR%\Web\printers
@del /f /q %WINDIR%\Web\printers\images
@del /f /q %WINDIR%\Web\printers\PrtCabs
@del /f /q %WINDIR%\Help\iisHelp
wmic useraccount where name='administrator' call Rename test
net user dpan 123456 /add /passwordchg:yes /expires:never
net localgroup "Remote Desktop Users" dpan /add
net user epan 654321 /add /passwordchg:yes /expires:never
net localgroup "Remote Desktop Users" epan /add
net localgroup Users dpan /del
Net user epan 654321
Cacls D:\ /e /c /d epan
Cacls C:\ /t /e /c /g epan:f
Cacls E:\ /t /e /c /g epan:f
Cacls C:\ /e /c /d dpan
Cacls D:\ /t /e /c /g dpan:f
Cacls E:\ /e /c /d dpan
Cacls C:\ /e /c /d everyone
Cacls D:\ /e /c /d everyone
Cacls E:\ /e /c /d everyone
Cacls C:\ /e /c /r everyone
Cacls D:\ /e /c /r everyone
Cacls E:\ /e /c /r everyone
del %systemdrive%\diskpart.cmd
del %systemdrive%\diskpart.txt
del %systemdrive%\%0
/usr/local/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make
sudo make install
[eaccelerator]
extension_dir = "/usr/local/lib/php/extensions"
extension="/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
mkdir /tmp/eaccelerator_cache
Server Software: nginx/0.8.7
Server Hostname: www.test.com
Server Port: 80
Document Path: /test.php
Document Length: 25 bytes
Concurrency Level: 200
Time taken for tests: 1.523543 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10000
Total transferred: 2160000 bytes
HTML transferred: 250000 bytes
Requests per second: 6563.65 [#/sec] (mean)
Time per request: 30.471 [ms] (mean)
Time per request: 0.152 [ms] (mean, across all concurrent requests)
Transfer rate: 1384.27 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 1.8 0 15
Processing: 4 22 7.9 24 67
Waiting: 1 18 9.7 20 66
Total: 6 23 7.4 24 67
Percentage of the requests served within a certain time (ms)
50% 24
66% 24
75% 24
80% 25
90% 31
95% 32
98% 41
99% 61
100% 67 (longest request)
Server Software: nginx/0.8.7
Server Hostname: www.test.com
Server Port: 80
Document Path: /test.php
Document Length: 25 bytes
Concurrency Level: 200
Time taken for tests: 1.373767 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10011
Total transferred: 2162376 bytes
HTML transferred: 250275 bytes
Requests per second: 7279.25 [#/sec] (mean)
Time per request: 27.475 [ms] (mean)
Time per request: 0.137 [ms] (mean, across all concurrent requests)
Transfer rate: 1536.65 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 3.0 2 21
Processing: 4 24 11.4 23 94
Waiting: 2 17 12.9 15 93
Total: 5 26 11.1 26 94
Percentage of the requests served within a certain time (ms)
50% 26
66% 29
75% 31
80% 31
90% 32
95% 34
98% 83
99% 92
100% 94 (longest request)
mysql> create table t(id varchar(100), context text);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t values(1, repeat('beijing', 100)),(2, repeat('beijing', 100)),(3, repeat('beijing', 100));
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into t select * from t;
Query OK, 196608 rows affected (1.20 sec)
Records: 196608 Duplicates: 0 Warnings: 0
[root@backup ~]# du -sh /usr/local/mysql/data/test/t*
12K /usr/local/mysql/data/test/t.frm
268M /usr/local/mysql/data/test/t.MYD
4.0K /usr/local/mysql/data/test/t.MYI
mysql> delete from t where id=1;
Query OK, 131072 rows affected (1.11 sec)
[root@backup ~]# du -sh /usr/local/mysql/data/test/t*
12K /usr/local/mysql/data/test/t.frm
268M /usr/local/mysql/data/test/t.MYD
4.0K /usr/local/mysql/data/test/t.MYI
mysql> optimize table t;
+--------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------+----------+----------+----------+
| test.t | optimize | status | OK |
+--------+----------+----------+----------+
1 row in set (0.99 sec)
[root@backup ~]# du -sh /usr/local/mysql/data/test/t*
12K /usr/local/mysql/data/test/t.frm
179M /usr/local/mysql/data/test/t.MYD
4.0K /usr/local/mysql/data/test/t.MYI
mysql> create table c(c char(4), v varchar(4));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into c values('ab ', 'ab ');
Query OK, 1 row affected(0.00 sec)
mysql> select concat(c, '+'), concat(v, '+') from c;
+----------------+----------------+
| concat(c, '+') | concat(v, '+') |
+----------------+----------------+
| ab+ | ab + |
+----------------+----------------+
1 row in set (0.00 sec)
source /etc/profile
create table staffs (
id int primary key,
name varchar(255),
sex enum ( 'male', 'female' ),
birthday date,
div varchar(255)
);
tctmgr create casket
tctmgr put casket 1 "name" "张三" "sex" "male" \
"birthday" "19900101" "div" "brd,dev"
tctmgr put casket 5 "name" "李四" "sex" "female" \
"birthday" "19850523" "div" "dev"
tctmgr put casket 23 "name" "王五" "sex" "male" \
"birthday" "19881013" "div" "hr"
tctmgr list -pv casket
--------
1 name 张三 sex male birthday 19900101 div brd,dev
5 name 李四 sex female birthday 19850523 div dev
23 name 王五 sex male birthday 19881013 div hr
tctmgr get casket 23
--------
name 李四
sex female
birthday 19850523
div dev
#查询以王开头的用户
tctmgr search -pv casket name STRBW "王"
-------
23 name 王五 sex male birthday 19881013 div hr
#查询以85年出生以后的男职员
tctmgr search -pv casket birthday NUMGE 19850101 sex STREQ "male"
--------
1 name 张三 sex male birthday 19900101 div brd,dev
23 name 王五 sex male birthday 19881013 div hr
tctmgr out casket 23
#确认结果
tctmgr list -pv casket
--------
1 name 张三 sex male birthday 19900101 div brd,dev
5 name 李四 sex female birthday 19850523 div dev
ln -s /usr/lib/oracle/10.2.0.4/client64 /usr/lib/oracle/10.2.0.4/client
ln -s /usr/include/oracle/10.2.0.4/client64 /usr/include/oracle/10.2.0.4/client
--with-pdo-oci=instantclient,/usr,10.2.0.4
export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client64/lib
for i in /usr/include/oracle/10.2.0.4/client64/*;do;ln -s $i /usr/include;done
curl -O http://pecl.php.net/get/PDO_OCI-1.0.tgz
pear install PDO_OCI-1.0.tgz
extension=pdo_oci.so
pear uninstall PDO_OCI
进行卸载
ln -s /usr/lib/oracle/10.2.0.4/client64 /usr/lib/oracle/10.2.0.4/client
ln -s /usr/include/oracle/10.2.0.4/client64 /usr/include/oracle/10.2.0.4/client
curl -O http://pecl.php.net/get/PDO_OCI-1.0.tgz
tar xf PDO_OCI-1.0.tgz
cd PDO_OCI-1.0
/usr/local/php/bin/phpize
./configure --with-pdo-oci=instantclient,/usr,10.2.0.4 --with-php-config=/usr/local/php/bin/php-config
make
make install
extension=pdo_oci.so
rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
rpm -ivh oracle-instantclient-devel-10.2.0.4-1.x86_64.rpm
wget http://apache.etoak.com/httpd/httpd-2.2.11.tar.bz2
tar xf httpd-2.2.11.tar.bz2
cd httpd-2.2.11
./configure --prefix=/usr/local/apache --enable-module=so
make
make install
cp build/rpm/httpd.init /etc/rc.d/init.d/httpd
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
CONFFILE=/etc/httpd/conf/httpd.conf
apachectl=/usr/local/apache/bin/apachectl
httpd=${/usr/local/apache/bin/httpd}
CONFFILE=/usr/local/apache/conf/httpd.conf
chmod +x /etc/init.d/httpd
chkconfig --add httpd
chkconfig httpd on
yum -y install zlib zlib-devel gd gd-devel libjpeg libjpeg-devel libpng libpng-devel
wget http://cn.php.net/get/php-5.2.9.tar.bz2/from/cn2.php.net/mirror
tar xf php-5.2.9.tar.bz2
cd php-5.2.9
./configure \
--with-oci8=instantclient,/usr/lib/oracle/10.2.0.4/client64/lib \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-zlib \
--enable-mbstring \
--with-gd \
--with-jpeg-dir
make
make install
cp php.ini-dist /usr/local/php/etc/php.ini
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export PATH
export ORACLE_BASE=/usr/lib/oracle
export ORACLE_HOME=$ORACLE_BASE/10.2.0.4/client64
export ORACLE_SID=oracle_sid
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
/etc/init.d/httpd start
phpinfo();
?>
/usr/local/php/bin/php -m
ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0 up
ddns-update-style interim;
ignore client-updates;
option time-offset -18000; # Eastern Standard Time
default-lease-time 21600;
max-lease-time 432000;
option domain-name-servers 192.168.0.1;
subnet 192.168.0.0 netmask 255.255.255.0 {
pool{
range 192.168.0.2 192.168.0.254;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.255.0;
}
}
subnet 192.168.1.0 netmask 255.255.255.0 {
pool{
range 192.168.1.2 192.168.1.254;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
}
}
DHCPDARGS="eth0:0 eth0:1"
/etc/init.d/dhcpd start
#!/bin/sh
IP=172.16.10.100
healthcheck(){
ping -c 1 -w 1 $IP > /dev/null
return $?
}
send_message(){
curl -d username=15000000000 -d password=123456 -d sendto=15000000000 -d message="远端主机$IP已经down掉了" http://sms.api.bz/fetion.php
}
while true; do
while healthcheck; do
echo "health ok!"
sleep 300
done
echo "fail over!"
send_message
sleep 300
done
mkdir /tmp/ulog-a
ttserver -port 1978 -ulog /tmp/ulog-a -sid 1 -mhost localhost -mport 1979 -rts /tmp/a.rts /tmp/casket-a.tch
mkdir /tmp/ulog-b
ttserver -port 1979 -ulog /tmp/ulog-b -sid 2 -mhost localhost -mport 1978 -rts /tmp/b.rts /tmp/casket-b.tch
tcrmgr put -port 1978 localhost TTTest TestByZLJ
tcrmgr get -port 1978 localhost TTTest
tcrmgr get -port 1979 localhost TTTest
tcrmgr put -port 1979 localhost test TTTest
tcrmgr get -port 1979 localhost test
ttserver -port 1978 -ulog /tmp/ulog-a -sid 1 -mhost localhost -mport 1979 -rts /tmp/a.rts /tmp/casket-a.tch
tcrmgr get -port 1978 localhost test
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.1;
range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
#deny unknown-clients;
#group pxe {
next-server 192.168.0.4;
filename "/centos/pxelinux.0";
#host client { hardware ethernet 00:00:00:00:00:00; fixed-address 192.168.0.100; }
}
}
service dhcpd start
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
}
service xinetd start
mkdir /tftpboot/centos
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/centos
mkdir /tftpboot/centos/pxelinux.cfg
default centos5
label centos5
kernel vmlinuz
append load initrd=initrd.img ksdevice=eth0 ks=nfs:192.168.0.4:/home/centos/ks.cfg devfs=nomount
/home/centos *(ro,no_root_squash)
service portmap start
service nfs start
showmount -e localhost
text
install
repo --name=epel --baseurl=http://download.fedora.redhat.com/pub/epel/5/x86_64/
nfs --server=192.168.0.4 --dir=/home/centos/
keyboard us
lang en_US
key --skip
xconfig --defaultdesktop=GNOME --depth=8 --resolution=640x480
network --bootproto=dhcp --device=eth0 --onboot=on
#network --bootproto=dhcp --device=eth1 --onboot=on
rootpw --iscrypted $1$Sl6MDA1O$Z2HRda3FpCmaSRqrmD.gD0
user --name test --homedir /home/test --iscrypted --password=$1$IXb255iK$wZq/pCb2o70P1F8pXnI6P/ --shell=/bin/bash --groups=test,wheel
firewall --disabled
auth --useshadow --enablemd5
selinux --disabled
timezone --isUtc Asia/Shanghai
bootloader --location=mbr
logging --level=info
clearpart --all --drives=sda
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=150
part swap --bytes-per-inode=4096 --fstype="swap" --size=2048
part pv.01 --size=1 --grow
volgroup lvm pv.01
logvol / --vgname=lvm --size=20480 --name=root
logvol /var --vgname=lvm --size=20480 --name=var
logvol /tmp --vgname=lvm --size=20480 --name=tmp
logvol /data --vgname=lvm --size=1 --grow --name=data
reboot
%packages
@editors
@development-libs
@base
@development-tools
-firstboot-tui
ntp
net-snmp-utils
net-snmp-libs
net-snmp
openssl-devel
nrpe
nagios-plugins
nagios-plugins-all
%post --log=/mnt/sysimage/root/anaconda-post.log --erroronfail
/bin/cat << EOF >/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=`ifconfig eth0 |grep HWaddr |awk '{print $5}'`
ONBOOT=yes
NETMASK=`ifconfig eth0|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d`
IPADDR=`ifconfig eth0|sed -e 's/^.*inet addr:\([^ ]*\).*$/\1/p' -e d`
GATEWAY=`netstat -rn|grep eth0|awk '{print $2}' | grep -v 0.0.0.0`
TYPE=Ethernet
EOF
echo "nameserver 192.168.0.1" > /etc/resolv.conf
#disable ipv6
sed -i '/NETWORKING_IPV6=/s/yes/no/' /etc/sysconfig/network
echo "alias net-pf-10 off" >> /etc/modprobe.conf
echo "alias ipv6 off" >> /etc/modprobe.conf
/sbin/chkconfig --level 35 ip6tables off
### Setting to ssh
/usr/bin/patch /etc/ssh/sshd_config << EOF
13c13
< #Port 22
---
> Port 30000
39a40
> PermitRootLogin no
60c61
< PasswordAuthentication yes
---
> PasswordAuthentication no
110c111
< #UseDNS yes
---
> UseDNS no
EOF
/sbin/restorecon /etc/ssh/sshd_config
/bin/mkdir ~test/.ssh
/bin/chmod 700 ~test/.ssh
/bin/cat << EOF > ~test/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3NhtQhIrjeJy5WIlohdTn9SooaTsxpSiBljhx189b08DyC3xALH6R87RvX7+6jwJF/TqzwhZ495HTDfl7en98Dp97Xi8tYibPm9E3QBil9PGG+952flgVxTZZvS+D/rJ/7vuIp8iAiO9u3JUsZWP7X0dIaNhrnVfL31juk8I/EippzzMkjzUeRg62UizCxVD7AynwnqAsPdr6kcv9MGAZOvg7lDMv2Orbgsl0nakwtt+jmtQPGziLW+nQFVlHXTekmiJ2bDfURlRDWaegOftD+qGN3pIjO1TFCxgZccagYAVg1Jm+mFHIMIlmwpTcmBXO9DjjAhj6BXVbBNArqU5lQ== test@test.com
EOF
/bin/chmod 644 ~test/.ssh/authorized_keys
/bin/chown -R test:test ~test/.ssh/
### disable not wheel group user use su chang to root
sed -i '6s/^#auth/auth/g' /etc/pam.d/su
### Setting SNMP
/bin/cat << EOF > /etc/snmp/snmpd.conf
com2sec localhost localhost COMMUNITY_STRING
com2sec localnet 192.168.0.0/24 COMMUNITY_STRING
group test v1 localhost
group test v2c localhost
group test v1 localnet
group test v2c localnet
view all included .1 80
access test "" any noauth exact all none none
access test "" any noauth exact all all none
disk / 100000
EOF
/sbin/restorecon /etc/snmp/snmpd.conf
### disable CTRL-ALT-DELETE
/usr/bin/patch /etc/inittab << EOF
32c32,33
< ca::ctrlaltdel:/sbin/shutdown -t3 -r now
---
> #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
> ca::ctrlaltdel:ca::ctrlaltdel:/usr/bin/logger 'CTRL-ALT-DELETE trap is disabled'
EOF
/sbin/restorecon /etc/inittab
### vim
/bin/sed -i "8 s/^/alias vi='vim'/" /root/.bashrc
/bin/echo 'syntax on' > /root/.vimrc
### ntp time set
/bin/echo '15 3 * * * /usr/sbin/ntpdate 192.168.0.4 > /dev/null 2>&1' >> /var/spool/cron/root
### Setting nagios monitor
/bin/cat << EOF > /etc/nagios/nrpe.cfg
log_facility=daemon
pid_file=/var/run/nrpe.pid
server_port=5666
#If you want monitor to oracle please change nrpe_uset and nrpe_group to oracle user an oracle group
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=192.168.0.4
dont_blame_nrpe=0
debug=0
command_timeout=60
connection_timeout=300
command[check_ping]=/usr/lib64/nagios/plugins/check_ping -H 172.16.10.13 -w 500,10% -c 1000,25%
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 9.0,7.0,6.0 -c 10.0,8.0,7.0
command[check_disk_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_disk_var]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /var
command[check_disk_tmp]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /tmp
command[check_swap]=/usr/lib64/nagios/plugins/check_swap.pl -w 50% -c 10%
command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200 -s RSZDT
command[check_users]=/usr/lib64/nagios/plugins/check_users -w 3 -c 5
command[check_ssh]=/usr/lib64/nagios/plugins/check_ssh -H 127.0.0.1 -p 65508
command[check_ntp]=/usr/lib64/nagios/plugins/check_ntp -H 172.16.10.13 -w 1 -c 2
#Check Oracle Start
#command[check_oracle_tns]=/usr/lib64/nagios/plugins/check_oracle --tns oracle_tns_name
#command[check_oracle_db]=/usr/lib64/nagios/plugins/check_oracle --db oracle_sid
#command[check_oracle_login]=/usr/lib64/nagios/plugins/check_oracle --login oracle_tns_name
#command[check_oracle_cache]=/usr/lib64/nagios/plugins/check_oracle --cache oracle_tns_name DB_username DB_passwd 80 90
#command[check_oracle_tablespace]=/usr/lib64/nagios/plugins/check_oracle --tablespace oracle_tns_name DB_username DB_passwd tab 90 80
#Check Oracle End
#command[check_http]=/usr/lib64/nagios/plugins/check_http -H 127.0.0.1
#command[check_dig]=/usr/lib64/nagios/plugins/check_dig -H 127.0.0.1 -l zhliji2.blogspot.com
#command[check_smtp]=/usr/lib64/nagios/plugins/check_smtp -H 127.0.0.1
#command[check_pop]=/usr/lib64/nagios/plugins/check_pop -H 127.0.0.1
#command[check_imap]=/usr/lib64/nagios/plugins/check_imap -H 127.0.0.1 -p 143
#command[check_clamd]=/usr/lib64/nagios/plugins/check_clamd -H /tmp/clamd.socket
#command[check_amavisd]=/usr/lib64/nagios/plugins/check_tcp -H 127.0.0.1 -p 10024
#command[check_spamd]=/usr/lib64/nagios/plugins/check_tcp -H 127.0.0.1 -p 783
#command[check_mysql]=/usr/lib64/nagios/plugins/check_mysql -H 127.0.0.1 -u root -p mysql root's password
EOF
/sbin/chkconfig nrpe on
###Setting IPtables
cat << EOF > /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:140]
:ping - [0:0]
-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW -j ping
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 3/4 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 14 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 16 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 18 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 30000 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A ping -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j RETURN
-A ping -p icmp -j REJECT --reject-with icmp-port-unreachable
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
EOF
###disable serverices
for i in `ls /etc/rc3.d/S*`
do
CURSRV=`echo $i|cut -c 15-`
case $CURSRV in
crond | irqbalance | microcode_ctl | network | random | iptables |sshd | syslog | snmpd | nagios | nrpe )
;;
*)
chkconfig --level 235 $CURSRV off
;;
esac
done
mkdir /tmp/ulog-master
ttserver -port 1978 -ulog /tmp/ulog-master /tmp/casket-master.tch
mkdir /tmp/ulog-master
ttserver -port 1979 -ulog /tmp/ulog-slave -mhost localhost -mport 1978 -rts /tmp/slave.rts /tmp/casket-slave.tch
tcrmgr put -port 1978 localhost TTTest TestByZLJ
tcrmgr get -port 1978 localhost TTTest
tcrmgr get -port 1979 localhost TTTest
ttserver /tmp/casket.tch
在终端B中插入测试数据
tcrmgr put localhost TTTest TestByZLJ
在终端B中查询刚刚插入的测试数据
tcrmgr get localhost TTTest
在终端B中备份数据库文件
tcrmgr copy localhost /tmp/backup.tch
模拟服务down掉,在终端A中按下ctrl-c键
rm /tmp/casket.tch
还原数据库文件
cp /tmp/backup.tch /tmp/casket.tch
在终端A中重新启动服务
ttserver /tmp/casket.tch
在终端B中检索数据
tcrmgr get localhost TTTest
最后我们得到的结果还是:TestByZLJ,说明成功的还原了数据
mkdir /tmp/ulog
在终端A中启动服务ttserver -ulog /tmp/ulog /tmp/casket.tch
在终端B中插入测试数据
tcrmgr put localhost TTTest TestByZLJ
在终端B中查询刚刚插入的测试数据
tcrmgr get localhost TTTest
模拟服务down掉,在终端A中按下ctrl-c键
rm /tmp/casket.tch
备份更新log文件
mv /tmp/ulog /tmp/ulog-back
在终端A中重新启动服务
ttserver /tmp/casket.tch
通过更新log还原数据tcrmgr restore localhost /tmp/ulog-back
在终端B中检索数据
tcrmgr get localhost TTTest
最后我们得到的结果还是:TestByZLJ,说明成功的还原了数据。/usr/local/php/bin/pear install Benchmark
include_once( 'Benchmark/Timer.php' );
$timer = new Benchmark_Timer();
include_once( 'Net/TokyoTyrant.php' );
$tt = new Net_TokyoTyrant();
$tt->connect( 'localhost', 1978 );
$timer->start();
for ( $i = 0; $i < 10000; $i++) $tt->put( 'test_'.$i, $i );
$timer->setMarker('TOKYO CABINET - INSERT 10,000 RECOREDS');
for ( $i = 0; $i < 10000; $i++) $tt->get( 'test_'.$i );
$timer->setMarker('TOKYO CABINET - SELECT 10,000 RECOREDS');
for ( $i = 0; $i < 10000; $i++) $tt->put( 'test_'.$i, $i );
$timer->setMarker('TOKYO CABINET - UPDATE 10,000 RECOREDS');
for ( $i = 0; $i < 10000; $i++) $tt->out( 'test_'.$i );
$timer->setMarker('TOKYO CABINET - DELETE 10,000 RECOREDS');
$timer->stop();
$timer->display();
$tt->close();
?>
memcached -d -m 256 -l 127.0.0.1 -p 11211 -u root
include_once( 'Benchmark/Timer.php' );
$timer = new Benchmark_Timer();
$memcache = new Memcache;
$memcache->connect('localhost', 11211);
$timer->start();
for ( $i = 0; $i <10000; $i++ ) $memcache->set( 'test_'.$i, $i );
$timer->setMarker('MEMCACHE - INSERT 10,000 RECOREDS');
for ( $i = 0; $i <10000; $i++ ) $memcache->get( 'test_'.$i );
$timer->setMarker('MEMCACHE - SELECT 10,000 RECOREDS');
for ( $i = 0; $i <10000; $i++ ) $memcache->replace( 'test_'.$i, $i );
$timer->setMarker('MEMCACHE - UPDATE 10,000 RECOREDS');
for ( $i = 0; $i <10000; $i++ ) $memcache->delete( 'test_'.$i );
$timer->setMarker('MEMCACHE - DELETE 10,000 RECOREDS');
$timer->stop();
$timer->display();
$memcache->close();
?>
curl -O http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.16.tar.gz
./configure
make
make install
curl -O http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.23.tar.gz
./configure
make
make install
/usr/local/php/bin/pear channel-discover openpear.org
/usr/local/php/bin/pear install openpear/Net_TokyoTyrant-beta
/usr/local/php/bin/pear install openpear/Net_TokyoTyrant
/usr/local/sbin/ttservctl start
include_once 'Net/TokyoTyrant.php';
$tt = new Net_TokyoTyrant();
$tt->connect( 'localhost', 1978 );
$tt->put('test', 'PHP connet to Tokyo cabinet');
echo $tt->get('test');
$tt->close();
?>
include_once 'Net/TokyoTyrant.php';
$tt = new Net_TokyoTyrant();
$tt->connect( 'localhost', 1978 );
//$tt->put('test', 'PHP connet to Tokyo cabinet');
echo $tt->get('test');
$tt->close();
?>
for i in 1 2 3 4 5 6 7 8 9 10;
do
sleep 10;
echo $'\n' $i;
hdparm -tT /dev/sda;
done
for i in 1 2 3 4 5 6 7 8 9 10;
do
sleep 10;
echo $'\n' $i;
dd if=/dev/zero of=/tmp/hdparm_write$i.tmp ibs=1M obs=1M count=1024;
done
Copyright © 2009 周灵杰 保留所有原创日志的权利,转载请注明出处。