解决SSH远程登录后屏幕尺寸不对的问题

首先解释下标题: 其实我想表达的是: 解决SSH远程登录后本地终端窗口大小改变远程屏幕尺寸没有随之改变导致显示混乱的问题, 但是太长了, 嗯.
我的一部分Linux VPS存在这个问题, 而另一部分是正常的; 一个由镜像默认安装的Ubuntu 10.04 Server一定存在这个问题.

具体解决方法其实很简单, 只是因为搜索的时候有点小纠结, 所以当做译文吧:
编辑 /etc/screenrc
找到

termcapinfo xterm 'is=...'

注: …表示还有很多长得像乱码的字符, 反正前面部分能对上就行
修改为:

termcapinfo xterm* 'is=...'

也就是说, 只添加那个*(星号).
之后重新连接/重新打开screen即可.

之前因为连上ssh并没有启动screen, 而是直接打开mtr, rtorrent 之类的程序, 也存在此问题, 所以没有怀疑到screenrc头上去 = =||||

参考资料:
http://lists.gnu.org/archive/html/screen-users/2010-12/msg00027.html

让libTorrent优先选择教育网IPv6地址

猫在教育网机子上挂PT, 但是机子同时是内网的IPv6网关(HE的/64), 结果rtorrent每次返回给tracker的&ipv6=后面总是我在HE的2001:470:xx:xx::1, 和教育网PT上其他用户之间连接效果差爆了.

在折腾了几种workaround无效后, 最后不得不改libtorrent的代码了! 由于ipv6部分本身就是由一个patch加上去的, 我只需要对这个patch再patch一次即可:
安装过程就不再赘述了, 满网上都是的…

--- A/libtorrent-0.12.6-ipv6-07.patch	2011-08-19 00:02:03.603735921 +0800
+++ B/libtorrent-0.12.6-ipv6-07.patch	2011-08-19 00:36:14.824983083 +0800
@@ -417,7 +417,7 @@
 diff -Nur libtorrent-0.12.6.orig/src/net/local_addr.cc libtorrent-0.12.6/src/net/local_addr.cc
 --- libtorrent-0.12.6.orig/src/net/local_addr.cc	1970-01-01 01:00:00.000000000 +0100
 +++ libtorrent-0.12.6/src/net/local_addr.cc	2010-07-23 14:44:51.000000000 +0200
-@@ -0,0 +1,336 @@
+@@ -0,0 +1,340 @@
 +// libTorrent - BitTorrent library
 +// Copyright (C) 2005-2007, Jari Sundell
 +//
@@ -502,29 +502,33 @@
 +#ifdef RAK_USE_INET6
 +// IPv6 priority, from highest to lowest:
 +//
-+//  1. Global address (2000::/16 not in 6to4 or Teredo)
-+//  2. 6to4 (2002::/16)
-+//  3. Teredo (2001::/32)
-+//  4. Empty/INADDR_ANY (::)
-+//  5. Everything else (link-local, ULA, etc.)
++//  1. cernet & cernet2 address (2001:250::/32 and 2001:da8::/32)
++//  2. Other global address (2000::/16 not in 6to4 or Teredo)
++//  3. 6to4 (2002::/16)
++//  4. Teredo (2001::/32)
++//  5. Empty/INADDR_ANY (::)
++//  6. Everything else (link-local, ULA, etc.)
 +int get_priority_ipv6(const in6_addr& addr) {
 +  const uint32_t *addr32 = reinterpret_cast(addr.s6_addr);
 +  if (addr32[0] == htonl(0) &&
 +      addr32[1] == htonl(0) &&
 +      addr32[2] == htonl(0) &&
 +      addr32[3] == htonl(0)) {
-+    return 4;
++    return 5;
 +  }
 +  if (addr32[0] == htonl(0x20010000)) {
-+    return 3;
++    return 4;
 +  }
 +  if ((addr32[0] & htonl(0xffff0000)) == htonl(0x20020000)) {
-+    return 2;
++    return 3;
 +  }
-+  if ((addr32[0] & htonl(0xe0000000)) == htonl(0x20000000)) {
++  if (addr32[0] == htonl(0x20010250) || addr32[0] == htonl(0x20010da8)) {
 +    return 1;
 +  }
-+  return 5;
++  if ((addr32[0] & htonl(0xe0000000)) == htonl(0x20000000)) {
++    return 2;
++  }
++  return 6;
 +}
 +#endif
 +

给用NexusPHP的PT站写的分流/保种员自动发工资脚本

如题.使用说明:
1, 为实现统计本月流量/保种时间(NexusPHP默认的数据表没有留这些数据), 需要在users表里增加 downloaded_lastmonth, uploaded_lastmonth, seedtime_lastmonth 三个字段.
2, 需要获取分流员/保种员信息, 也需指定pipeliner/guarder字段(enum或boolean, 后者需略微改动此代码)
3, 需要python2.x环境, 以及python-MySQLDb库.
4, 需要服务器上有正常的crontab, 每月1日0点执行即可.
5, 此脚本还提供了记录上月实际上传下载(不含优惠信息), 以及下载时间的统计部分, 相应部分默认已注释掉, 可以手动替换启用. 如需显示在userdetails页面上, 只需做一个简单的减法(当前-上月). 实际上传/下载量的统计还需修改announce.php.
6, 工资(魔力/邀请)参考下面的设置修改. 本初始数据来自CMCT-PT的考核标准和奖励细则.
7, 修改数据库连接字符串的相应部分, 即可用.

Continue reading 给用NexusPHP的PT站写的分流/保种员自动发工资脚本

让 Linux 里的 .xmind 文件能被双击打开

这其实只是一个简单的小trick 🙂

ubuntu和arch默认安装的xmind, 如果直接在WM/DE的文件管理器里双击打开, 只会打开一个新脑图, 而不会打开你指定的文件, 这个问题还是相当annoying的. 下面是解决方法:

编辑 /usr/share/applications/xmind.desktop 文件,
找到 Exec= 开头的那一行, 修改为:

Exec=/usr/share/xmind/xmind-bin %f

(如果安装位置不一样请自行修改, 总之一定要是这个-bin的文件, 而不能是直接xmind %f)
(其实很纳闷为啥xmind的策略这么诡异- -)

之后保存退出, 然后xmind文件就能直接打开啦!
不过这样仍然有一个问题: 打开的xmind里会有两个标签页, 一个是你打开的文件, 一个仍然是个新建的脑图, 而且默认焦点在新建的脑图上, 这个还是非常不爽的…希望各路大神提供解决方法 ^_^

参考资料: http://code.google.com/p/xmind3/issues/detail?id=200

QR Code Business Card