工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表全部文章

aria2 — Linux 下的BT高速下载工具

aria2 是 Linux 下一个不错的高速下载工具。由于它具有分段下载引擎,所以支持从多个地址或者从一个地址的多个连接来下载同一个文件。这样自然就大大加快了文件的下载速 度。aria2 也具有断点续传功能,这使你随时能够恢复已经中断的文件下载。除了支持一般的 http(s) 和 ftp 协议外,aria2 还支持 BitTorrent 协议。这意味着,你也可以使用 aria2 来下载 torrent 文件。

安装 aria2

aria2 目前已被包含到许多 Linux 发行版中,因此你可以通过所用的系统直接加以安装。例如,在 Debian/Ubuntu 中,你可以在终端执行如下指令来安装 aria2:

sudo apt-get install aria2

如果你使用 Fedora Core,那么可以使用下列命令:

sudo yum install aria2

你也可以获取 aria2 的源代码,自行编译安装。当前 aria2 的最新版本为aria2-1.10.8.tar.gz,可从这里下载。

aria2 的使用方法

aria2 是命令行程序,使用非常简单。

  • 一般使用 使用 aria2 下载文件,只需在命令后附加地址即可。如: aria2c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2
  • 分段下载 利用 aria2 的分段下载功能可以加快文件的下载速度,对于下载大文件时特别有用。为了使用 aria2 的分段下载功能,你需要在命令中指定 s 选项。如: aria2c -s 2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 这将使用 2 个连接来下载该文件。s 后面的参数值介于 1~5 之间,你可以根据实际情况选择。
  • 断点续传 在命令中使用 c 选项可以断点续传文件。如: aria2c -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2
  • 下载 torrent 文件 你也可以使用 aria2 下载 BitTorrent 文件。如: aria2c -o gutsy.torrent http://cdimage.ubuntu.com/daily-live/current/gutsy-desktop-i386.iso.torrent

关于 aria2 的更多用法,可以通过 man aria2c 查阅。

如何在Linux终端下进行BT下载

1)Linux下有许多软件可以从终端进行BT下载。rtorrent 可能是其中最使用简单而且使用范围广的。下载时,你只需要向他提供简单的种子文件地址而不需要下载整个种子文件。比如:rtorrent <torrent文件地址>
rtorrent是高度自定义化的。默认情况下,你可以编辑位于~.rtorrent.rc的配置文件来对它进行设置。你也可以用这样的命令:rtorrent -n -o import=~/自定义.rc来为rtorrent指定你自己的自定义设置文件。
一些特殊情况下你可以使用自己的设置文件,而默认情况下rtorrent不加载设置文件。
在线程中暂停和恢复下载:session = ~/Download/session
为新的下载监视目录:schedule = watch_directory,10,10,load_start=~/Download/watch/*.torrent
在下载结束后移动文件:on_finished = move_complete,”execute=mv,-u,$d,get_base_path=,~/Download/ ;d.set_directory=~/Download/”
到达上传限额后停止上传:schedule = ratio,60,60,”stop_on_ratio=200,50M,300”
完整的选项和下载请看下面的网站:http://libtorrent.rakshasa.no/
2)另一个重要的BT下载工具Transmission也有命令行版本。使用transmission下载文件,你需要提供已下载的种子文件,而不像rtorrent那样只提供一个链接。比如:transmissioncli /home/pays/Desktop/test.torrent
此外,你可以使用-d和-u选项自定义下载和上传的速度限制。Transmission为Debian准备的命令行版本可以从这里下载:http://packages.debian.org/unstable/net/transmission-cli
3)命令行下载BT的的三个选择是ctorrent。虽然它在2006年就停止研发了,不过在多数时候仍然可以正常工作。它使用和transmission的命令行版本类似的命令格式,比如:ctorrent /home/pays/Desktop/test.torrent你可以从ctorrent的网站来了解它的更多信息:http://ctorrent.sourceforge.net/

kernel panic - not syncing : nmi watchdog

修改方法:
/etc/sysctl.conf文件中加入
kernel.panic = 30 #panic错误中自动重启,等待时间为30秒
kernel.sysrq = 1 #激活Magic SysRq! 否则,键盘鼠标没有响应

判断是否为数字

if [[ "$1" =~ "^[0-9]+$" ]] ;then

 

TEST=`echo $num|sed 's/[0-9]//g'`
if [ "$TEST" != "" ]

使用 PHP Screw 加密 PHP 源代码

在使用PHP过程中发现,自己编写的php代码因为都是源代码方式放在服务器上的所以很容易就被别人拿走随便修改(变成自己开发的)使用了。
为了保住自己的劳动成果,我一直寻找一种可以加密php代码的软件。
最著名的就是Zend公司的Zendencoder了,但是不是开源软件(要价很高,也没有找到破解版)。
既然收费的用不起,我们就用开源的。我找到了php_screw这个开源软件,目前最新版本是1.3
网址
http://sourceforge.net/projects/php-screw/
我的安装环境
系统:Slackware 10
软件:Apache 1.3.31
PHP 4.3.7
以上环境全部是slackware 10默认安装后自带的。具体的Apache+php+mysql安装方法参照如下
支持php的Apache环境安装
获得软件
下载php_screw-1.3 (http://prdownloads.sourceforge.net/php-screw/php_screw-1.3.tgz?download)

安装
1.将获得的php_screw-1.3.tgz文件放到/usr/local目录下,然后用tar解压缩
tar zxvf php_screw-1.3.tgz

2.进入/usr/local/php_screw-1.3目录开始安装
cd /usr/local/php_screw-1.3
phpize
./confiugre

3.设置自己用来加密的密码
vi my_screw.h

      -- Please change the encryption SEED key (pm9screw_mycryptkey) into the
         values according to what you like.
         The encryption will be harder to break, if you add more values to the
         encryption SEED array. However, the size of the SEED is unrelated to
         the time of the decrypt processing.

      *  If you can read and understand the source code, to modify an original
         encryption logic will be possible. But in general, this should not
         be necessary.

      OPTIONAL: Encrypted scripts get a stamp added to the beginning of the
                file. If you like, you may change this stamp defined by
                PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must
                be less than or equal to the size of PM9SCREW.

4.编译
make

5.拷贝modules目录下的php_screw.so文件到/usr/lib/php/extension目录下
cp modules/php_screw.so /usr/lib/php/extension/

6.编辑php.ini文件
在php.ini文件里,加入如下语句
extension=php_screw.so

7.重新启动Apache
/etc/rc.d/rc.httpd restart

8.编译加密工具
cd tools
make

9.将tools目录下加密用的工具screw拷贝到适当目录
cp screw /usr/bin/

经过以上的10步,就已经把php_screw-1.3全部安装完成了。并且现在的php也已经支持解释加密过的php文件了
使用
1.现写一个要加密的php文件。
我写了如下的一个用来测试php速度的compute.php文件

<?
$a
=0;
$t=time();
for(
$i=0;$i<5000000;$i++)
   {
$a=$a*$i;}
$t1=time();
echo
"<p>";
echo
"It used:";
echo
$t1-$t;
echo
"seconds";
?>

将上面的compute.php文件放到/var/www/htdocs目录下。通过浏览器访问,将显示出php在大量计算时的速度(只能粗略估计一下)
2.将我们写的php文件加密
cd /var/www/htdocs/
screw compute.php

我们加密后,现在目录下的compute.php文件就是我们已经加密的了。而源文件被改名为compute.php.screw存放了。
我们现在再测试一下compute.php,看看能否正常使用?速度如何?
我比较了一下,加密前后的速度大概一样,基本没有太多的损失。

常用shell命令

1 # 替换标识符下一行的内容 


2 sed -e '/zone "hexun.com" IN {/,+1s/slave/master/' *.conf 

3 # 删除标识行的下5行 

4 sed -i -e '/also-notify {/,+5d' *.conf 

5 # 在文件开头添加内容 

6  perl -i -pe 's<^><ZONE };\n};\n none; { named.60.28.251?;\n\tallow-update ?data master;\n\tfile \{\n\ttype IN ?251.28.60.in-addr.arpa? named.root?;\n}\nzone hint;\n\tfile {\n\ttype in ?.?>g if $.==1' $i

2.awk 分析apache日志
总流量

 
1 awk -F '"' '{print $3}' /opt/lampp/logs/access_log | awk '{sum+=$2};END {print sum}'

访问次数前十的ip

 
1 awk '{++S[$1]} END {for(a in S) print a,S[a]}' /opt/lampp/logs/access_log | sort -k2 -n -r | head

访问次数前十的连接

 
1 awk  -F '"'  '{print $2}' /opt/lampp/logs/access_log | sort | uniq -c | sort -k1 -n -r | head -20

1.

 
01 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

02 发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决, 

03 vi /etc/sysctl.conf 

04 编辑文件,加入以下内容: 

05 net.ipv4.tcp_syncookies = 1 

06 net.ipv4.tcp_tw_reuse = 1 

07 net.ipv4.tcp_tw_recycle = 1 

08 net.ipv4.tcp_fin_timeout = 30 

09   

10 然后执行 /sbin/sysctl -p 让参数生效。 

11 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; 

12 net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; 

13 net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 

14 net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

1.按内存从大到小排列进程:
ps -eo “%C : %p : %z : %a”|sort -k5 -nr

2.查看当前有哪些进程;查看进程打开的文件:
ps -A ;lsof -p PID

3.获取当前IP地址(从中学习grep,awk,cut的作用)
ifconfig eth0 |grep “inet addr:” |awk ‘{print $2}’|cut -c 6-

4.统计每个单词出现的频率,并排序
awk ‘{arr[$1]+=1 }END{for(i in arr){print arr”\t”i}}’ 文件名 | sort -rn

5.显示10条最常用的命令
sed -e “s/| /\n/g” ~/.bash_history | cut -d ‘ ‘ -f 1 | sort | uniq -c | sort -nr | head

6.杀死Nginx进程(杀死某一进程)
ps -ef|grep -v grep |grep nginx|awk ‘{print $2}’ 或
for i in `ps aux | grep nginx | grep -v grep | awk {‘print $2′}` ; do kill $i; done

7.列出当前文件夹目录大小,以G,M,K显示。
du -b –max-depth 1 | sort -nr | perl -pe ‘s{([0-9]+)}{sprintf”%.1f%s”, $1>=2**30? ($1/2**30, “G”): $1>=2**20? ($1/2**20, “M”):$1>=2**10? ($1/2**10, “K”): ($1, “”)}e’

shaw答案 :du -hs $(du -sk ./`ls -F |grep /` |sort -nr |awk ‘{print $NF}’)
也可 以实现,不过不是特别完美。但好记。

8.清空linux buffer cache
sync && echo 3 > /proc/sys/vm/drop_caches

9.将当前目录文件名全部转换成小写
for i in *; do mv “$i” “$(echo $i|tr A-Z a-z)”; done

10.消除vim中的^M的几种方法
1)dos2uninx filename
2)sed -e ‘s/^M//’ filename
3)vim中 :s/^M//gc
4)col -bx < dosfile > newfile
5)tr -s “” “\n” < file > newfile

11. 清除所有arp缓存
arp -n|awk ‘/^[1-9]/ {print “arp -d “$1}’|sh

12. 绑定已知机器的arp地址
cat /proc/net/arp | awk ‘{print $1 ” ” $4}’ |sort -t. -n +3 -4 > /etc/ethers

用killall能够杀死同一个可执行文件的所有进程,但是我要杀死用php执行的php文件进程中的某些,就不好做了,在网上搜了下发现了这个,挺好用:

killprog=`ps -ef|grep -E “XXXXXXX” | grep -v grep | awk ‘{print $2} ‘` kill $killprog

硬盘操作查看工具 iotop

如果你知道有程序在磨你的硬盘,但是你又不能确定是哪一个程序在磨你的硬盘,那么就用 iotop来帮助你吧。

在Ubuntu里安装命令是: sudo apt-get install iotop

安装好之后在终端输入:iotop就可以了

下面来说一具体运用:

可以用左右箭头操作,按 r 是相反方向,按 o 是动态切换

用法 iotop -参数

–version 查看版本信息的

-h, –help 查看帮助信息的

-o, –only 只显示在划硬盘的程序
-b, –batch 批量处理 用来记录日志的

-n NUM  设定循环几次

-d SEC, –delay=SEC  设定显示时间间隔

在centos 5 上利用 xen 安装 Windows Server 2003

启动命令:virt-manager
XEN确实是不一个不错的虚拟软件,并且RedHat也做了很好的工作,不过还是走了不少弯路。正常安装的过程应该还是比较容易的。还有人建议用xen专门为RHEL 5编译的内核,但是个人觉得没有必要。
1. 在安装时选择虚拟化组件。这样将会看上去安装xen和相应的系统内核。
2. 在计算机的BIOS中打开虚拟功能支持。在Xen上安装Windows需要完全虚拟化,这样需要硬件支持。
在BIOS中打开虚拟功能之后,执行/usr/bin/xm info时应该包含如下信息:
xen_caps : xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
3. 虚拟光驱的设置。
如果使用virt-manager启动管理程序,然后点击New新建虚拟机,则它指定的虚拟光驱ISO文件并不会保存在配置文件中。
手工添加该文件的方法为:
disk = [ ‘phy:/dev/VolGroup01/Win2k3_01,hda,w’, ‘file:/opt/soft/cd1.iso,hdc:cdrom,r’ ]
4. 设置从光盘启动的方法:
boot=”d”
5. 在安装时,在“Setup is starting”时死机。这个问题折腾了我很长时间,甚至把系统都重新安装了好几次,换成32位版,后来又折腾回x64版。
关键步骤是如下设置:
acpi=0

----------------

在安装重起后找不到CD,要在virt-manager里设定ISO文件即可