工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表全部文章

在线制作ico图标的网站

网址:http://tools.dynamicdrive.com/favicon/

更多离线的ico图标制作工具请看这里

你只需要有一个 GIF 或者 PNG 的方形图片,该网站就可以帮你生成效果还不错的 ico 图标,效果比我在国内找的一些网站好多了,支持透明背景。

shell产生随机数,字符串

#!/bin/bash
MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+="
LENGTH="9"
while [ "${n:=1}" -le "$LENGTH" ]
do
        PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
        let n+=1
done
        echo "$PASS"
exit 0

 

或用mkpasswd

echo $RANDOM,产生数字串

 

apache 22

./configure \
--prefix=/servers/httpd22 \
--with-mpm=worker \
--enable-rewrite \
--enable-speling \
--enable-so \
--disable-authz-host \
--disable-authz-groupfile \
--disable-authz-user \
--disable-authz-default \
--disable-status \
--disable-auth-basic

--disable-authn-file \

 


  mod_authn_file.c
  mod_authn_default.c
  mod_auth_basic.c

sed 小技巧

用sed合并行
tr -d '\n' <file
cat file | xargs echo
echo $(<file)
cat file | paste -s -d ""

删除空格

tr -d ' '

mysql 64位 segmentation fault

源码编译,5.1, 5.0的都试过,系统是CentOS5.4

不管怎么编译,结果都是

[root@localhost mysql-5.1.44]# /usr/local/mysql/bin/mysql
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.44-log Source distribution

Segmentation fault

 

tail /var/log/messages
Feb 22 11:26:28 localhost kernel: mysql[2883]: segfault at fffffffff347c6c0 rip 000000000041c001 rsp 00007ffff347be80 error 4
Feb 22 11:36:24 localhost kernel: mysql[18627]: segfault at ffffffffcef603e0 rip 000000000041c001 rsp 00007fffcef5fba0 error 4
Feb 22 11:36:37 localhost kernel: mysql[18632]: segfault at ffffffffe0e70df0 rip 000000000041c001 rsp 00007fffe0e705b0 error 4

好奇怪,用系统自带的又行,而且,只是mysql客户端有问题,其它的一切正常,能启动,能用

早二三个月也遇到一次,但当时没具体深究原因,好像是ncurses原理,后也不知怎么弄好了

后安装ncurses库,再编译就可以了,估计上次也是,只是当时没有留意

vsftpd

http://vsftpd.beasts.org/#download
ftp://vsftpd.beasts.org/users/cevans/
ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.2.2.tar.gz

tar zxvf
cd
sed -i 's/define VSF_BUILD_PAM/undef VSF_BUILD_PAM/' builddefs.h

make
mkdir /usr/share/empty
mkdir /www/servers/vsftpd
install -m 755 vsftpd /www/servers/vsftpd/vsftpd
install -m 644 vsftpd.8 /usr/share/man/man8
install -m 644 vsftpd.conf.5 /usr/share/man/man5
install -m 644 vsftpd.conf /etc/vsftpd.conf

[root@local cf]# cat vsftpd.denyuser
echo 'root
bin
daemon
shutdown
halt
ftp
nobody
vcsa
nscd
rpm
haldaemon
sshd
rpc
rpcuser
mailnull
smmsp
pcap
apache
named
mysql' > /etc/vsftpd.denyuser

 

cat vsftpd.conf
echo 'anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
listen=YES
listen_port=21
chroot_local_user=YES
pasv_enable=YES
pasv_min_port=10240
pasv_max_port=10250
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.denyuser' > /etc/vsftpd.conf


iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10240:10250 -j ACCEPT


X86_64
修改vi vsf_findlibs.sh内容为 locate_library /lib64/libpam.so.0 && echo "/lib/libpam.so.0";
if locate_library /lib64/libcap.so.1; then
  echo "/lib64/libcap.so.1";
else
  locate_library /usr/lib64/libcap.so && echo "-lcap";
  locate_library /lib64/libcap.so && echo "-lcap";
fi
再次执行make

LVS状态迁移,主从结构

原理,http://zh.linuxvirtualserver.org/node/70

http://www.linuxvirtualserver.org/docs/sync.html

 

打开和关闭主从调度器的状态同步比较简单,只需要

ipvsadm --start-daemon=master
ipvsadm --stop-daemon=master
ipvsadm --start-daemon=backup
ipvsadm --stop-daemon=backup

解决apache服务器的time_wait和fin_wait1过多等问题

对一些大流量的web服务器来说,比较常见的问题就是time_wait会很多,起因大多都是apache里 keepalive 没开的原因,将这个开启,相对会少一些,但大流量时还是比较多,这里还有另外一个参数设置

net.ipv4.tcp_max_tw_buckets = 5000

如果不想time_wait不要太多,只要把这个值调低,就肯定不会超过了

但会出现一个新问题,就是在系统日志里,会很多类似这样的警告

Nov 27 15:50:01 localhost kernel: printk: 9498 messages suppressed.
Nov 27 15:50:01 localhost kernel: TCP: time wait bucket table overflow
Nov 27 15:50:06 localhost kernel: printk: 9562 messages suppressed.
Nov 27 15:50:06 localhost kernel: TCP: time wait bucket table overflow
Nov 27 15:50:11 localhost kernel: printk: 10120 messages suppressed.
Nov 27 15:50:11 localhost kernel: TCP: time wait bucket table overflow
Nov 27 15:50:16 localhost kernel: printk: 9182 messages suppressed.
Nov 27 15:50:16 localhost kernel: TCP: time wait bucket table overflow
Nov 27 15:50:21 localhost kernel: printk: 9626 messages suppressed.

这个警告其实不影响使用和性能,只是烦而已。我曾为避免这个提示,就将 net.ipv4.tcp_max_tw_buckets 调得很大,接着 time_wait 也就很大了。这也是上面这个问题,在网上搜索到的解决办法了。不想这个警告出现,重新编译内核,可以避免。

还有另一外问题,就是 fin_wait1 过多的问题,这个情况,一般的服务器上不会有。至少我的情况是这样

但在用了集群/负载均衡(LVS)中,下面的机器,就有这种情况,也曾为解决这个问题苦恼了挺久,经过今天的测试,也可以解决了。

只要在/etc/sysctl.conf 中加入

net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_reordering = 5
net.ipv4.tcp_retrans_collapse = 0

就会减少很多了,关键的是 net.ipv4.tcp_orphan_retries 这个