rsync的一些更安全的用法
[ 2009/08/17 18:34 | by selboo ]
总的来说,开在873端口之后,只要加上验证口令,安全性就有保障了,但毕竟多开一个端口,而且rsync的密码是明文方式存储的,相对来说,还是有被监听的可能。根据不同的情况采用下述不同方案,相对来说,安全性更高一些
1。如果只是本机备份,不需要启动darmon,直接用
/usr/bin/rsync -vzrtopglq --size-only --progress --delete /data/htdocs /backup
2。如果只是内网中的机器互备,可以让rsync只监听在内网的ip上
启动daemon的时候,用参数 --address 可以让rsync只监听在内网的192.168.0.10这个ip上
rsync --daemon --address 192.168.0.10
3。通过公网备份的话,可以将rsync监听在非873端口,增加安全性
启动daemon的时候,用参数 --port 可以让rsync监听在 非873端口
rsync --daemon --port 1873
4。如果还觉得不够安全,可以不启用daemon,通过ssh做备份,更安全和方便一些
在客户端是用命令
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e ssh root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
即可以通过ssh端口来做备份,rsync会调用远端的rsync命令来处理相关操作
如果远端机器的ssh开在非22端口的话,可以通过 -p参数来指定ssh的端口
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e 'ssh -p1089' root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
如果不想每次备份都手工输入ssh的密码的话,可以参考这里使用scp、ssh等不用输入密码
1。如果只是本机备份,不需要启动darmon,直接用
/usr/bin/rsync -vzrtopglq --size-only --progress --delete /data/htdocs /backup
2。如果只是内网中的机器互备,可以让rsync只监听在内网的ip上
启动daemon的时候,用参数 --address 可以让rsync只监听在内网的192.168.0.10这个ip上
rsync --daemon --address 192.168.0.10
3。通过公网备份的话,可以将rsync监听在非873端口,增加安全性
启动daemon的时候,用参数 --port 可以让rsync监听在 非873端口
rsync --daemon --port 1873
4。如果还觉得不够安全,可以不启用daemon,通过ssh做备份,更安全和方便一些
在客户端是用命令
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e ssh root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
即可以通过ssh端口来做备份,rsync会调用远端的rsync命令来处理相关操作
如果远端机器的ssh开在非22端口的话,可以通过 -p参数来指定ssh的端口
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e 'ssh -p1089' root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
如果不想每次备份都手工输入ssh的密码的话,可以参考这里使用scp、ssh等不用输入密码
开启 Apache Server Status
[ 2009/08/17 18:19 | by selboo ]
Apache 1.3.2及以后的版本中就自带一个查看Apache状态的功能模块server-status
一般默认状态下,apache安装的时候已经将mod_status模块安装了,只是模式情况下没有启用
在httpd.conf中,找到
引用
将其中的 .example.com 改为自己的域名,比如www.admin99.net
将前面的注释去掉,重启apache,即可通过 http://www.admin99.net/server-status来访问。
可以通过http://www.admin99.net/server-status?refresh=5来自动刷新当前的状态信息,5秒刷新一次
另外,如果想要看当前的详细请求信息的话,可以将
引用
ExtendedStatus On
一般默认状态下,apache安装的时候已经将mod_status模块安装了,只是模式情况下没有启用
在httpd.conf中,找到
引用
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .example.com
</Location>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .example.com
</Location>
将其中的 .example.com 改为自己的域名,比如www.admin99.net
将前面的注释去掉,重启apache,即可通过 http://www.admin99.net/server-status来访问。
可以通过http://www.admin99.net/server-status?refresh=5来自动刷新当前的状态信息,5秒刷新一次
另外,如果想要看当前的详细请求信息的话,可以将
引用
ExtendedStatus On
df和du显示空间为何不一致
[ 2009/07/30 12:02 | by selboo ]
有台机器空间老是显示满,df显示已经使用了100%,可用du命令却没见占用很多空间,后来终于在网上查到了原因所在:
造成这个现象的原因是有进程仍然打开着已经被删除的文件。因为该文件已经不存在于文件目录树上,所以du遍历整个文件系统中不会统计其所占用的空间,可是,这个文件又还不能被从磁盘上删除,所以确实还占用了一部分磁盘空间。
可以用lsof来确定究竟是哪个进程搞的鬼,比如:
上面这个例子显示tail(pid为31818)进程打开了一个已经被删除的文件(/var/spool/clientmqueue/dfm9TAh6du031818 ),这个文件大小为457053。此时,如果终止这个进程,那么这457053多字节就会正常释放,df的输出也就和du一致了。
曾经遇到过此类问题的报告,似乎杀了sendmail就好了。当时不知原由,现在想来,可能是系统长时间运行后sendmail的日志经过了rotate,而sendmail仍然打开着旧的日志文件。
以后再遇到此类情况,直接用lsof命令,查看是哪些进程占用着已删除文件,就可相机处理了。
造成这个现象的原因是有进程仍然打开着已经被删除的文件。因为该文件已经不存在于文件目录树上,所以du遍历整个文件系统中不会统计其所占用的空间,可是,这个文件又还不能被从磁盘上删除,所以确实还占用了一部分磁盘空间。
可以用lsof来确定究竟是哪个进程搞的鬼,比如:
# lsof | grep deleted
sendmail 31818 hsq 3uW REG 8,5 194523136 457053 /var/spool/clientmqueue/dfm9TAh6du031818 (deleted)
sendmail 31818 hsq 3uW REG 8,5 194523136 457053 /var/spool/clientmqueue/dfm9TAh6du031818 (deleted)
上面这个例子显示tail(pid为31818)进程打开了一个已经被删除的文件(/var/spool/clientmqueue/dfm9TAh6du031818 ),这个文件大小为457053。此时,如果终止这个进程,那么这457053多字节就会正常释放,df的输出也就和du一致了。
曾经遇到过此类问题的报告,似乎杀了sendmail就好了。当时不知原由,现在想来,可能是系统长时间运行后sendmail的日志经过了rotate,而sendmail仍然打开着旧的日志文件。
以后再遇到此类情况,直接用lsof命令,查看是哪些进程占用着已删除文件,就可相机处理了。
php的memcache模块的优化
[ 2009/07/28 15:14 | by selboo ]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
其中比较重要的是
memcache.chunk_size
一个整型值,用于控制数据传输的大小。默认值为 8192 字节 (8 KB),但是如果设置为 32768 (32 KB),则可以获得更好的性能。
memcache.allow_failover
一个布尔值,用于控制当连接出错时 Memcache 扩展是否故障转移到其他服务器上。默认值为 1 (true)。
memcache.max_failover_attempts
一个整型值,用于限制连接到持久性数据或检索数据的服务器数目。如果 memcache.allow_failover 为 false,则将忽略此参数。默认值为 20。
memcache.default_port
另一个整型值,用于设置连接到 Memcache 所使用的 TCP 端口。除非您修改它,否则默认值为无特权的高端口 11211。
对于访问量非常大的服务器,最好是通过socket来连接memcached,这样能减少打开和关闭tcp/ip链接的开销。
如果memcached和php在两台不同的服务器上,通过udp来连接应该比tcp连接能消耗小一些,并且能获得更好的速度(尚未测试)
在memcached中启用压缩,对于通过tcp/ip 或者udp连接的memcache,能减少传输数据的大小,也能相应的降低一些负载
cat -e test.txt 是不是有出现^M 这样的字符(windows换行符)
有的话先sed 's/\r//' -i test.txt
再执行
paste -d ' ' test.txt test1.txt
或用
unix2dox
有的话先sed 's/\r//' -i test.txt
再执行
paste -d ' ' test.txt test1.txt
或用
unix2dox