Category: Opensource

  • Linux CLI一行搞定批量文件改名

    参考链接:How to batch rename files 如果一个文件夹下面有成百上千的文件要统一改名该怎么办?很简单: for i in *; do j=`echo $i |cut -d . -f 1`; j=$j”.ext”;  mv $i $j; done 上例中会把’abc.def.xyz’ 改名为 ‘abc.ext’,应用到当前文件夹所有文件。 这回发现cut这个命令很好用,其中’-d .’指明了使用’.’作为分割符号,而’-f 1’只保留被’.’分割后的第一行。如果一个文件名是’abc.defg.hij’,那么cut -d . -f 1将返回’abc’。

  • 本机上的DNS缓冲,只要两步

    你还在用电信服务商提供给你的DNS服务么?其实只要两步,就可以在自己的电脑上跑起DNS服务来,前提是,你用的是Linux系统(当然Windows下也许也有办法的)。 参考链接:Dnsmasq 第一步:安装dnsmasq。dnsmasq是零配置的一个本地DNS cache程序。 sudo apt-get install dnsmasq 安装完成后,你可以选择修改配置文件; sudo gedit /etc/dnsmasq.conf 如果你是懒人或者生手,那么缺省的或者空白的配置文件已经能够满足你的需求了。 第二步:修改resolv.conf。样本可以是这样的: nameserver 127.0.0.1 nameserver 208.67.222.222 nameserver 208.67.220.220 这样写的原因是,把127.0.0.1放在第一行,这样才保证dnsmasq得到DNS请求并处理;第二、三行的是OpenDNS的两个IP地址,dnsmasq会从这里读取并在没有本地数据的情况下(例如第一次访问某个网站)将DNS请求转发到真正的dns服务。 这样安装就完成了。首先重新启动dnsmasq: sudo /etc/init.d/dnsmasq restart 然后确认dnsmasq在监听DNS端口: sudo netstat -ltp | grep domain 如果结果中有类似这样 tcp        0      0 *:domain                *:*                     LISTEN      28289/dnsmasq 就说明dnsmasq在工作了。下面用浏览器访问一下你收藏的网址吧,是否感到速度快了许多呢?另外一个好处就是你现在更加的independent了,不必看DNS服务商的脸色。

  • LAMP服务器的简单备份方法

    我用CentOS作为网站服务器的OS,我是这样备份我的网站的。 以下简称网站服务器为C,我的电脑是A。首先,在C上用一段shell script备份网站: backup.sh #! /bin/bash # This script is to backup the website files and db mysqldump mydb -pmypass >/var/www/mysite/mydump.sql datestamp=`date +%Y%m%d` filewww=”/home/myuser/backup/mysite_””$datestamp””.zip” zip -r $filewww /var/www/mysite 然后可以先运行一下这个script,看看结果是否符合预期。如果没问题,就可以将其加入到crontab了,每天自动运行。 59 3 * * * /bin/bash /home/myuser/backup.sh 这样C这边每天凌晨会备份一次并生成一个zip压缩包。但是把C的备份留在C就没意义了,我还要定期的把zip从C传到A。由于A不像C那样不间断运行的,所以如果从C向A传输就需要测试A是否在线,麻烦。不如让A取C上的zip。这就涉及到另一个问题,身份验证。 为一段自动运行的script提供password,我觉得不如使用public key验证来得专业,而且简单,两步就搞定: ssh-keygen -t rsa ssh-copy-id -i .ssh/id_rsa.pub [email protected] 这期间问到private key password时直接回车就行了;[email protected]的password还是需要输入的(否则……)。 下一步就是在A上写script,获取C上的备份,成功获取后删除C上的备份,并将A本机上超过一个月的备份删除。 backup-mysite.sh #!/bin/bash #by Raymond, Jun, […]

  • Unicode编码中的简繁中文互转

    现在简繁中文的转换已经不像从前那样,是gbk/ big5两种文字编码之间的转换,而是在同一个编码,Unicode,当中不同编码的映射。当然,简繁中文绝对不是简单的一一对应关系,有一对多的个别情况,例如简体的“后” 对应繁体的 “后”和“後”。行业词汇也有差别,例如大陆说“宽带”,而港台说“寬頻”;大陆说“操作系统”,而港台说“作業系統” 等等。 因此当我决定用Python程序将森海塞尔简体中文网站转换为繁体中文网站时,我的计划分三个步骤: 提取行业高频关键字,找到简体和繁体的对应,编成词典 利用现有的Python中文本地化工具包,将关键字之外的文字转换 请港台Freelancer人工校对,确保本土化 第一步,我的词典替换程序在此: 第二步,我利用的是pyzh中文工具包中的fanjian.py完成。特别感谢pyzh项目组的全部成员和fanjian.py程序作者ne.manman和zsp007! 下面就交给香港的朋友了,希望不会累坏他:) 顺便说,Songbird很不错,有点山寨iTunes,那又怎样呢?毕竟Linux下面还没iTunes。 Songbird

  • 从6.7到0.01

    编程果然不能偷懒!我这一偷懒,CPU就不知道要受多少累、冒多少热气了。一开始,我采用了很无脑的穷举方法,复杂度是O(n**2),结果肯定正确的,但是长度一万的数组就可以耗去6.7秒的CPU时间。 [email protected]:~/_Work/Dev/python$ python le.py time:  0:00:06.708924 return:  1 0 0 0 之后,在高手提示下将复杂度降低到n (log n + 1) ,结果不错了。 [email protected]:~/_Work/Dev/python$ python le.py time:  0:00:00.010430 return:  1 0 0 0 对应改进后的代码: def leader3(array): t = len(array) //2 array.sort() p = -1 c = 1 for i in array: if p == i : c+=1 if c > t: […]

  • CLI(命令行界面)的网络监控

    图形界面的网络流量控制并不稀罕了,我总算找到一个CLI的,给我那没有GUI的Ubuntu Server装上了。很简单,但是并不简陋哦!即时、平均、最大数值都可以看到。 我是从这里发现bwm-ng的。

  • 我的第一个CAPTCHA

    Securimage 是开源的PHP CAPTCHA脚本。利用Securimage,你可以很快的做出如图的校验码出来,简单的把人类和机器人分开(至少能把不太聪明的机器人挡住)。 Securimage 需要 GD2 图形程序库。

  • 自定义Joomla!的模块/组件参数

    Joomla!的灵活结构再次让我省心省事了。虽然Joomla!的菜单导航组件很不错,但是一些不算很通用的功能就需要自己定制,例如为每个栏目设定背景图或者标题图。 我是这样做的: /administrator/components/com_menus/models/metadata/component.xml <?xml version=”1.0″ encoding=”utf-8″?> <metadata> <state> <name>Component</name> <description>Component Parameters</description> <params> <param name=”page_title” type=”text” size=”30″ default=”” label=”Page Title” description=”PARAMPAGETITLE” /> <param name=”show_page_title” type=”radio” default=”1″ label=”Show Page Title” description=”SHOW/HIDE THE PAGES TITLE”> <option value=”0″>No</option> <option value=”1″>Yes</option> </param> <param name=”pageclass_sfx” type=”text” size=”20″ default=”” label=”Page Class Suffix” description=”PARAMPAGECLASSSFX” /> <param name=”@spacer” type=”spacer” default=”” label=”” description=”” /> <param […]