今天犯了一个很低级的错误,通过命令行恢复一个mysqldump出来的很大的文件时,由于没有没有将它放到后台进行,运行几个小时之后突然由于超时而中断与远程服务器的连接了。幸好可以通过SQL语句导出导入部分记录的数据:
导出:
SELECT * FROM park_log WHERE pl_id > 51025594 INTO OUTFILE '/tmp/apps_park_log_51025594.txt';
导入:
LOAD DATA INFILE '/data1/apps_park_log/xB' INTO TABLE park_log;
yejr曾经测试比较,LOAD DATA比导入SQL文件快,但由于LOAD DATA必须所有操作进行完之后才向数据库里写记录,所以有时候往往会感觉LOAD DATA比较慢。我刚操作一个数千万行的文件时,还以为程序没有工作而手动中止了。真是一个活生生的例子。
操作远远没有想象中的复杂:先通过wordpress将原Blog内容导出为一个WXR格式的文件,然后通过Drupal的Wordpress Import模块,点几下鼠标即可将wordpress的内容转移至durpal里。
为了简化url,这次干脆将drupal程序放到了网站的根目录,值得一提的是,转换前后blog的feed订阅地址都没有变,不知道是不是巧合。
fdisk /dev/sdb
mkfs.ext3 /dev/sdb1
mkdir /data1
e2label /dev/sdb1 /data1
然后编辑/etc/fstab文件,添加如下内容
LABEL=/data1 /data1 ext3 defaults 1 0
然后mount -a
e2labe就好像给一个磁盘设备添加标签,便于记忆。不过我觉得挂载时还是使用设备标识(如/dev/sdb1)比较明显一些。
1. tac
将文件的最后一行当作第一行输出,以此类推,比如:
bash-3.1$ cat /etc/passwd | tac | tail -n 3
daemon:x:2:2:daemon:/sbin:/bin/false
bin:x:1:1:bin:/bin:/bin/false
root:x:0:0::/root:/bin/bash
2. rev
用法:rev [file ...]
描述:反转文件每行里的字符串顺序,如果没有指定文件,则从标准输出读取
bash-3.1$ echo 123456789 | rev
987654321
再复杂的密码也没有证书安全,再简单的密码也没有证书方便。有些人因为Putty无法保存密码,进而抛弃了这个免费、小巧的远程登录工具。条条大陆通罗马,其实可以ssh证书的方式让putty安全、方便的实现自动登录。
有些编辑器,比如M$ Windows的记事本,在创建UTF8编码文件时会在头部添加一个不可见字符。这个字符可以通过vim查看到,而且如果是一个php文件,php4、php5在解析时均会有输出。
原来这个被称作BOM(Byte Order Mark)的不可见字符,是Unicode用来标识内部编码的排列方式的,在UTF-16、UTF-32编码里它是必需的,而在UTF-8里是可选的。因此,才会出现有的编辑器在文件头部添加添加BOM、而有的语法解析器又不作处理的的混乱情况。
根据w3c里FAQ的建议,解决方法就是,删无赦!
btw, 刚才无意中发现,PHP 5.2.5的命令行下去除了BOM的显示,而 PHP 5.2.6确又显示出来了。
step1. 准备工作
- 下载Slax,.iso或者.tar格式均可,当前是v6.0.7,约190M
- 视主板BIOS具体选项,将U盘制作成相应格式(USB-HDD/USB-FDD/USB-ZIP)的可引导盘
如果找不到U盘附带的转换软件,可使用USBoot v1.70(下载页面)。我使用的是USB-HDD。
- U盘1个,我使用的是很普通的64M的
step2. 格式化U盘
这里建议格式化成linux下的文件系统,因为后面我使用默认的FAT32文件系统制作好,发现中途因为找不到某些文件而失败。
# mkfs.ext2 /dev/sdb1
step3. 拷贝文件
下载后直接将其中的boot和slax目录拷贝至U盘里
# cp boot slax /mnt/sdb1 -r
这里假设U盘被mount到了/mnt/sdb1目录
step4.
由于公司选择腾讯的RTX作为官方通讯工具,使用Linux后没少和虚拟机打交道。见识了MachineMa同学演示的VirtualBox无缝模式,根据网上的教程,比葫芦画瓢体验了一把,感觉不错,终于找到了个VirtualBox代替Vmware的理由了。
步骤:
step1. 下载并安装VirtualBox
VirtualBox是从去年的1.5.0版本开始支持无缝模式的,根据使用Vmware的经验,建议选择最新的版本。
step2. 选择相应的guest additions程序
类似vmware里的工具包,不过这个是个单独的iso文件,需要单独下载。
step3. 安装guest additoins
开启虚拟机的情况下,通过菜单里的"device" / "mount CD/DVD" / "CD/DVD image",选择已下载完成的Vboxguestadditions.iso,然后在虚拟机的光驱里双击安装。
随着时间的积累,以前大家的工作方式逐渐变得混乱,领导审时度势组织大家开了一次小会。本没有对这场中午的小会抱多大希望,但“develop with pleasure”的主题货真价实,听完之后犹如醍醐灌顶般恍然大悟,感觉以前没有头绪的事情一下子有了眉目。
对于维护上线的web项目,以往的做法是发现错误随时更正。这种松散的方式看起来很辛苦,但效率总是不高,而且还极易处于被动的地位。另外一种方式的好处就显而易见了,根据各种需求、计划、决策、反馈制定一个短期的版本计划,定期发布。根据该计划,线上的每次改动都将对应代码仓库里的一个版本,这样即便是某次发布时出现错误,也可以很容易恢复到稳定版本。除了版本发布操作,不再零散更新线上的文件。如果想灵活一些,还可以缩短计划中的开发周期。
以前没有仔细考虑过类似的问题,或许这只是项目管理中的冰山一角。其实很多事情都是相通的,就拿上文中的按计划发布版本来说,早在大学时班主任就曾多次向我们灌输计划、总结的重要性,当时可能也听了,只是没真正体会到它的重要性。
总之一句话:事前计划,事后总结。
就这。
btw,新增一个"快乐开发 | developer"分类,今后用于存放类似问题。