2011-01-14

找到一个清理邮件队列的脚本

功能就是清理指定邮箱的队列
如果复制粘帖不好用,这里有个纯文本的 http://www.arschkrebs.de/postfix/scripts/delete-from-mailq


脚本如下
#!/usr/bin/perl

$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";

@data = qx;
for (@data) {
  if (/^(\w+)(\*|\!)?\s/) {
     $queue_id = $1;
  }
  if($queue_id) {
    if (/$REGEXP/i) {
      $Q{$queue_id} = 1;
      $queue_id = "";
    }
  }
}

#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;

foreach (keys %Q) {
  print POSTSUPER "$_\n";
};
close(POSTSUPER);

完美解决centos5.5上vsftpd编码问题

一直以来 vsftpd 有个讨厌的乱码问题(据说在2.10以上版本就解决了,但我还没有测试),这个问题是这样的:如果服务器是UTF-8的locale,那么从windows上不支持ftp编码设置的客户端(比如ftp.exe)往vsftpd上传带有中文的文件名或者目录,那么在服务器上看到的文件名或者目录都是乱码(当然可以临时修改LC_LANG变量再修改终端的charset解决),更关键的是/var/log/vsftpd.log里也都是不可读的,全是疑问号。

公司里用centos5.5 + vsftpd,今天特地搜了一下,解决了这个问题。

最早应该是linuxsir的网友制作了vsftpd的中文编码补丁,centos5.5上的2.0.5版本的版本在这里  http://www.linuxsir.org/bbs/thread301341-3.html

我根据centos5.5上vsftpd 2.0.5的srpm重新编译了一个rpm包,可以直接从这里下载
http://fileape.com/dl/0jZnsbpdwvsPXcT5
http://www.multiupload.com/9RV57H2LTI

安装后 /etc/vsftpd/vsftpd.conf 添加以下三个选项即可

charset_filter_enable=YES
charset_client=GB2312
charset_server=UTF8

2011-01-04

php里用gpg解密文件

花了好长时间测试一直解不了,但把命令行在shell里执行却是可以的

在这里记录一下以供后来人参考吧

http://devzone.zend.com/article/1265 这篇文章很不靠谱,看了下面的讨论一条条试下来终于找到可用的了...

用这个即可

<?php
$gpg = '/usr/bin/gpg';
$passphrase = 'password';
$unencrypted_file = "foo";
$encrypted_file = "bar";
$cmd = "$gpg --no-tty --homedir /var/www/.gnupg --yes --passphrase=$passphrase -o $unencrypted_file -d $encrypted_file";
shell_exec($cmd);
?>

重点是 --no-tty 选项和 --homedir选项