电脑上使用迅雷肯定希望直接下载到硬盘上啊。那么我们可以使用mount --bind来将一个文件夹挂载到/media下,这样迅雷就可以下载了。对,没错,一切都OK。可是又有一个问题,假如我正在下载,突然要用到U盘。接到电脑上,迅雷二话不说,直接在U盘上创建两个文件夹,这让我情何以堪。要让迅雷忽略我的U盘,没有别的办法,只有取消迅雷在U盘上的写权限。但是U盘我还要往里面拷东西啊。所以我们只好给迅雷创建一个用户,然后用这个用户运行迅雷。这样,迅雷在我的U盘上就没有写权限了。
先创建一个叫thunder的用户
sudo useradd --no-create-home --user-group thunder
然后把xware的目录改为thunder所有,这样thunder才有权限运行xware(直接通过sudo给权限也行)
su chown thunder:thunder -R Xware1.0.31
再创建一个用来挂载的目录和一个下载的目录,这些目录也归thunder所有,不然它没权限写,怎么行。而这个下载目录你当前的用户也是有权限读的,不然下载的东西你没法看,有什么用?
sudo mkdir /home/linuxidc/TDDOWNLOAD -p
sudo mkdir /media/thunder/TDDOWNLOADS -p
sudo chown thunder:thunder /home/linuxidc/TDDOWNLOAD
sudo chown thunder:thunder /media/thunder/TDDOWNLOADS
然后我们把下载目录挂载到另一个目录
sudo mount --bind /home/linuxidc/TDDOWNLOAD /media/thunder/TDDOWNLOADS/
再重新以thunder用户运行迅雷(先获取root权限,再转换到thunder用户可以免去输入thunder的密码,因为刚刚就没给thunder创建密码,输入什么都不对的)
sudo su thunder -c ./portal
这样,迅雷会检测到/media/thunder/TDDOWNLOADS目录,下载的东西却是放到/home/linuxidc/TDDOWNLOAD中去了。现在,如果你点“新建”任务,可以看到剩余空间,则说明挂载成功。
折腾到此,总算是可以下载了,不过既然是在linux下,怎么也得写个脚本吧
#!/bin/sh
XWARE_DIR=./Xware1.0.31
USERNAME="thunder"
DOWN_DIR=/home/linuxidc/TDDOWNLOAD
MOUNT_DIR=/media/thunder/TDDOWNLOADS
if [ $# -gt 0 ];
then
#加参数 -s是关闭
su $USERNAME -c "$XWARE_DIR/portal -s"
code=$?
if [ $code -eq 0 ];
then
umount $MOUNT_DIR
echo "xware stop sucess..."
else
echo "xware stop fail,code $code"
fi
else
#不加参数默认是启动
su $USERNAME -c $XWARE_DIR/portal
code=$?
if [ $code -eq 0 ];
then
mount --bind $DOWN_DIR $MOUNT_DIR
echo "xware start sucess..."
else
echo "xware start fail,code $code"
fi
fi
这样,把这个文件放到Xware1.0.31的上一层,名为xware.sh。这个脚本会自动挂载文件夹,或者取消挂载,需要root权限。
运行 sudo ./xware.sh
关闭 sudo ./xware.sh -s