transmission-daemon WEB UI箭头显示异常bug

发布于: 2014年04月20日

transmission web 界面上,你会发现每个下载项目的上传和下载分别显示为:↑ 和 ↓ 。 而实际上程序想显示的分别是向上箭头(↑)和向下箭头(↓)。

这是一个已知的bug,解决方案见链接:https://trac.transmissionbt.com/ticket/4987

上面的解决方案和patch应该是解决所有transmission版本bug。如果只是解决transmission-daemon WEB UI的bug,可以下载arrows.patch, 或者自己修改文件:

/usr/share/transmission/web/javascript/torrent-row.js

第90行左右

TorrentRendererHelper.formatUL = function(t)
{
return ‘↑ ‘ + Transmission.fmt.speedBps(t.getUploadSpeed());
};

TorrentRendererHelper.formatDL = function(t)
{
-return ‘↓ ‘ + Transmission.fmt.speedBps(t.getDownloadSpeed());
};

改为

TorrentRendererHelper.formatUL = function(t)
{
return ‘ ‘ + Transmission.fmt.speedBps(t.getUploadSpeed());
};

TorrentRendererHelper.formatDL = function(t)
{
return ‘ ‘ + Transmission.fmt.speedBps(t.getDownloadSpeed());
};

其实就是把↑和↓ 替换掉。

不用重启transmission-daemon, 刷新web页面生效。

transmission-daemon 安装配置及若干问题

发布于: 2014年04月20日

本文基于下列操作环境:

硬件:raspberry pi 树莓派

操作系统:RASPBIAN — Debian Wheezy

假设系统ip: 192.168.1.100

1. 安装transmission-daemon

sudo apt-get install transmission-daemon

2. 基本配置:

启动控制文件:/etc/init.d/transmission-daemon

transmission-daemon配置文件位于/etc/transmission-daemon/settings.json (权限所有者:trnasmission-daemon)

默认配置文件夹目录: /var/lib/transmission-daemon/info (权限所有者:trnasmission-daemon)

文件夹 /var/lib/transmission-daemon/info 中含 setting.json 指向 /etc/transmission-daemon/settings.json

默认下载目录: /var/lib/transmission-daemon/downloads(权限所有者:trnasmission-daemon)

/etc/transmission/settings.json主要配置说明:

“cache-size-mb”: 4,     #内存缓存大小
“dht-enabled”: true,     #开启dht
“download-dir”: “/your/own/download/path”,  #请指定下载地址
“download-limit”: 100,                     #下载限速kb,所有限速相关的建议网页上自己设定
“incomplete-dir”: “/your/own/incomplete/path”,    #请指定地址
“incomplete-dir-enabled”: false,      #如果指定了,可以改为true开启
“rpc-enabled”: true,                  #开启网页控制
“rpc-username”: “simon”,      #远程控制用户
“rpc-password”: “{f51cf44878098657b404152b3b532f8c04854514rIbqCA.F”,  #加密的远程控制密码,你可以填写不加密的密码,启动后软件会自行加密
“rpc-port”: 9091,   #远程访问端口
“rpc-url”: “/transmission/”,
“rpc-whitelist”: “192.168.1.*”,  #默认127.0.0.1 只允许本机访问,一般路由器远程访问就设置成这样即可

保存, 启动transmission-daemon. 这里有陷阱,相见下方的常见问题。

sudo /etc/init.d/transmission-daemon start

或者

sudo service transmission-daemon start

远程控制,假设树莓派主机ip 192.168.1.100,则以 http://192.168.1.100:9091/ 访问,输入settings.json 设定的用户/密码。

基本设置完成,enjoy!

好吧,Linux下的东西不折腾几下是不会enjoy的。下面是常见问题:

1. 配置文件陷阱1

默认启动脚本相当于

sudo -u transmission-daemon transmission-daemon –config-dir /var/lib/transmission-daemon/info

具体,请自行 ps aux | grep transmission-daemon 确认。但是实际的配置文件却在/etc/transmission-daemon/settings.json。是的,这点我上面讲过,因为: /var/lib/transmission-daemon/info/setting.json -> /etc/transmission-daemon/settings.json

2. 配置文件陷阱2:

默认安装了transmission-daemon后,会自动启动。然后你去配置setting.json文件夹,然后重启( /etc/init.d/transmission-daemon restart ),然后你会发现根本不是你改的那个样子,然后你再改配置文件发现配置文件变成默认样子了,然后你寻找原因,然后你找不到原因,然后你抓狂。

因为在远程访问网页上可以修改一些配置,transmission-daemon在stop的时候会将修改的内容写入settings.json,所以不要再启动状态下修改settings.json, 请先/etc/init.d/transmission-daemon stop

3. 如何修改transmission-daemon运行用户

transmission-daemon运行的默认用户是transmission-daemon,如果要共享出来,给共享用户读写权限,会深深陷入Linux用户权限的旋涡。最简单的方式,就是以常用用户运行(树莓派为例用户pi)。

修改运行用户简单,/etc/init.d/transmission-daemon/ 修改

注释USER=debian-transmission这一行,增加 USER=pi 这一行。

修改你的下载文件夹:

sudo chown pi:pi -R /your/own/download/path

如果完成这两步,启动transmission-daemon,则会出现

a. 原来正在下载的东东不见了

b.添加新的种子,下载是报错:Error: Unable to save resume file: No such file or directory

resume文件夹在/var/lib/transmission-daemon/info/resume ,transmission-daemon用户权限,所以:

sudo chown pi:pi -R /var/lib/transmission-daemon/

其实,还要这样:

sudo chown pi:pi -R /etc/transmission-daemon/settings.json

不然无法保存网页上修改的配置。

OK, enjoy then.

EC2 vsftpd 建立ftp服务器的连接异常解决

发布于: 2014年04月15日

Amazon 云计算EC2 的几个基本概念说明:

1. EC2 有两个IP,  内部IP: 例如:172.xxx.xxx.xxx,   外部IP:例如:68.xxx.xxx.xxx

ifconfig 只能看到内部IP, 也就是说默认网卡分配了一个内部IP。而外部IP实际上是NAT端口到服务器。

2. EC2 控制台->NETWORK & SECURITY->Security Group 可以设定了ec2的防火墙,选择哪些端口打开。实际上是设定了那些NAT的端口。

假设我们以比较严格的方式设定Security Group, 仅开放使用到的端口。如使用ssh, ftp, web, 等,仅打开22,21,80端口。以vsftpd服务器为例,设定ftp服务器通常会碰到的问题。

vsftpd.conf 相关设定:

listen=YES         #打开监听
listen_port=21 #监听21端口
pasv_enable=YES  #启动被动模式
ftp登录会碰到下面的错误提示:

227 Entering Passive Mode (172,xxx,xxx,xxx,56).
ftp: connect: timout!

上面红色字体表明ftp服务器返回了一个172开头的内部IP
如果把pasv_enable=YES改为pasv_enable=NO,来关闭被动模式。登录ftp时回返回以下错误:

500 Illegal PORT command.

如果vsftpd.conf 绑定 ip 68.xxx.xxx.xxx呢?

listen_address=68.xxx.xxx.xxx
你可以预计到根本无法连接了,因为 主机并没有绑定68.xxx.xxx.xxx 这个IP的物理设备。
解决方案如下:
listen_port=21
pasv_enable=YES
pasv_max_port=21100   #可自行变更
pasv_min_port=21000  #可自行变更
port_enable=YES
pasv_address=68.xxx.xxx.xxx
在ec2 Security Group开放21和21000~21100 端口,即可解决。

EXT4-fs: Unrecognized mount option “uid=500” or missing value

发布于: 2013年10月29日

首先,我声明这是我无知造成的乌龙事件。事情是这样的。

CentOS下,新硬盘,新分区,ext4。

mount -t ext4 -o uid=500,gid=500 /dev/sdb1 /media/sdb1

上面命令试图把分区给uid=500的常规用户读写。

报错:

mount: wrong fs type, bad option, bad superblock on /dev/sdb1,

missing codepage or helper program, or other error

In some cases usefl info is found in syslog – try

dmesg | tail or so

好吧:#dmesg | tail

发现错误:

EXT4-fs: Unrecognized mount option “uid=500” or missing value

原因:

uid, gid, umask, dmask等参数是给ntfs, vfat等文件系统用的。给ext4 文件系统制定uid相当于执行了chown,而这一切并不必要。因为只要chown一次,下次mount该分区并不会改变之前chown的结果。

php-5.3.3 mssql support

发布于: 2013年10月15日

系统环境:

CentOS 6.4

软件仓库php5.3.3 带php-devel包

希望能够得到mssql.so 支持。

安装freetds:

http://www.freetds.org/ 下载最新稳定版本:freetds.stable.tgz 我得到的版本是0.91。下方的命令安装:

# tar zxvf freetds-current.tgz

# ./configure –prefix=/usr/local/freetds –with-tdsver=7.2 –enable-msdblib

# make

# make install

配置,我要求链接到SQL Server 2005:

修改/usr/local/freetds/etc/freetds.conf

[Server2005]
host = 192.168.1.100 #根据自己改

port = 1433

tds version = 7.2

client charset = UTF-8

tds version 选择参考:http://www.freetds.org/userguide/choosingtdsprotocol.htm

Server2005这个名字会在PHP 链接代码中用到。

mssql.so文件编译:

由于是软件仓库安装,并没有源代码。也没有php-mssql这样的软件包。所以编译mssql.so比较特殊,但也是可以。

下载php-5.3.3源码,老版本源码在这里下载:http://www.php.net/releases/

解压,进入目录:php-5.3.3/ext/mssql

#phpize

#./configure –with-php-config=/usr/bin/php-config –with-mssql=/usr/local/freetds

#make

#make install

make 的时候可能出现下面的错误:

/usr/include/php/main/spprintf.h:40: note: expected ‘char **’ but argument is of type ‘unsigned char **’

make: *** [php_mssql.lo] Error 1

修改 php-5.3.3/ext/mssql/php_mssql.h 24行增加一行:

#define PHP_MSSQL_API
此为bug,已经有人报告,见链接:https://bugs.php.net/bug.php?id=60267

编译成功后,会在/usr/lib/php/modules中出现mssql.so文件,64位的位于/usr/lib64/php/modules 中。在php.ini增加
extension=mssql.so

重启apache.
php链接mssql 代码:
mssql_pconnect('Server2005',username,passwd);

Good luck!

 

USB安装CentOS6.4 64位的主要问题解决

发布于: 2013年10月15日

目的:安装CentOS 6.4 64位到裸机,硬盘未格式化

安装要求:电脑无DVD Driver, 从USB安装CentOS6.4 64位系统

安装步骤:

1. 下载DVD iso介质:http://mirrors.163.com/centos/6.4/isos/x86_64/

文件列表:

CentOS-6.4-x86_64-bin-DVD1.iso (4.25G)

CentOS-6.4-x86_64-bin-DVD2.iso (1.41G )

CentOS-6.4-x86_64-minimal.iso(342M)(用处后提)

2. 制作USB启动,

取8G USB flash,  将CentOS-6.4-x86_64-bin-DVD1.iso文件烧录到USB drive.

在windows下可以使用ultraiso,试用版即可。 Win7 系统需要以管理员权限运行。

3. Copy 下列安装介质到USB flash,

CentOS-6.4-x86_64-bin-DVD1.iso (4.25G)

CentOS-6.4-x86_64-bin-DVD2.iso (1.41G )

问题:8G U盘不能同时装下两个4.25G的文件(一个烧录+一个完整iso文件),且fat32格式的文件系统不能放置大于4G的单个文件。

解决方案一:另取一个USB flash, 格式化为exfat格式即可copy。但由于CentOS 6.4 安装过程中的bash环境不直接支持exfat 格式的mount,故比较麻烦。

解决方案二:另取一个USB flash, 在linux 下格式化为ext2格式 copy。可行但不完美。

采用上面方法,需要在安装到无法找到安装介质步骤是,ctrl+alt+F2切换到第二终端,将iso文件所在目录mout到/mnt/isodir 目录下。

解决方案三:使用CentOS-6.4-x86_64-minimal.iso(342M)文件进行最小化安装。直接将此文件copy到烧录的USB flash根目录。进行最小化安装。然后根据需要从网络或copy 安装介质dvd到目录CentOS系统下扩展安装。具体升级扩展安装方法我参考下链接:

http://hi.baidu.com/waybol/item/a957ae3f8fad48a3633affa4

不过最小化安装启动时是不自动启动网卡的,请执行:

#ifup eth0

如果没有自动获取IP, 则执行:

#dhclient eth0

安装X Window

#yum groupinstall “X Window System”

安装GNOME桌面环境

#yum groupinstall “Desktop”

安装其他你想安装的软件包。

完毕!

浙ICP备18056264号-1