linux下进入乱码目录

若一个目录在用户上传后是乱码,如何进入此目录呢?

1. 若首字母是英文或数字,可以输入首字母后通过tab补齐方式进入。

2. 可通过inode更名方式进入:

使用inode,重新命名。
$ ls -i1
获取inode是多少
$ find -inum $inode -exec mv {} $new_file_name \;
使用find命令重新命名,其中$inode是上一步ls获取到的数字,$new_file_name是新的文件名。

3. 可以通过mc命令菜单式进入(最简单直接)。

遭遇chipset heat sink not detected问题

我使用的一台DELL T7400工作站,在一次远程重启后彻底趴窝了。到办公室后,发现系统在自检的时候就无法通过,提示:

chipset heat sink not detected

在网上搜索到一个最相关的文章:
http://www.chinafix.com/thread-70694-1-1.html
提示是散热器的问题。
首先拆机器,鼓风机除尘,看看有没有解决的可能,但无解。
继续拆CPU风扇,感觉没有问题,但也重新更换硅胶,依旧无解。
最后发现在主板上还有一个散热风扇,而且其风扇的固定脚断了一根,但风扇本身很牢固,估计是主板的自检程序是根据固定脚的简单电路进行检查,尝试使用一个回形针直接插上。搞定!

感谢李大侠的帮助。

基于ibdata1的mysql数据库恢复

服务器的阵列坏掉后,数据恢复公司进行了抢救后,大部分数据都恢复回来。但MYSQL数据库发现仅恢复了部分数据,即部分数据库是完整的,其他的库仅恢复了空表。其中有一个很大的文件,即ibdata1,约200多GB,估计可以用来恢复数据库。

网上搜索后,发现是可行的,处理方法如下:

1. 在一台新机器上搭建相同的系统环境,包括一个全新的mysql环境。
2. 停止mysql服务。即sudo service mysql stop
3. 将恢复后的ibdata1、ib_logfile*文件拷贝到新机器的/var/lib/mysql/目录下,覆盖之前的文件。同时修改/etc/mysql/my.cnf文件,在mysqld部分添加:

4. 拷贝需要恢复的数据库文件(空表,即包括*.frm文件的目录)到新机器的/var/lib/mysql/目录下
5. 重启mysql服务,即sudo service mysql start,然后用mysql命令检查数据是否有恢复。若能恢复回来,则可以用mysqldump进行备份导出。

在ubuntu服务器上使用dell md3060e及其管理程序

之前采购了一批服务器和存储,几经折腾后最终安装在学校的机房。服务器上安装了ubuntu 14.04系统,存储是dell的直连存储md3060e(我第一次用这个设备),硬件上安装好后发现不知道怎么做RAID。于是在dell官网上找到了对应的程序,发现有个linux版本的程序:StorageEnclosureManagement,“号称”可以支持debian和ubuntu。

DELL的官方程序下载地址上是这样描述的:

Debian74 Storage Enclosure Management Software 1.3

Storage Enclosure Management Software for MD3060e JBOD Arrays, version 1.3, Debian74 installer
Fixes & Enhancements
Fixes:
-New OS support for Ubuntu 14.04, SLES 12, and ESXi 5.5 (CLI only).
-Implement build version number.
-6TB 4096n support.
-Ability to update HBA adapter firmware
–LSI 9207-8e
–LSI 9206-16e

之前的1.2版本声明是支持ubuntu 12.04版本。但这个版本我下载后在ubuntu 14.04上无法安装,提示为不支持的操作系统。

Warning: This OS is unsupported: debian14.04. Installer will now exit.

于是,尝试修改系统的发行版本信息,看看能不能骗过安装程序的监测。

sudo nano /etc/lsb-release
将其中的版本信息修改为debian wheezy 7.4。

修改完成后,可以正常安装了。

BTW:本来我还以为md3060e可以直接支持raid,但搜索一圈下来,发现这是个“直连”系统,意思是本身不支持RAID?Dell的技术支持也不是很靠谱,两圈电话问下来,也没有解决问题。最后给我推荐安装DELL的MDSM软件,但这个软件本身也不支持md3060e,还是需要其他MD3主控阵列才可以。因此要考虑使用mdadm或lvm来软管理这个磁盘柜了。

postgresql中字符串与数字的混合排序

数据中心部分数据的标题是混合字符串与数组的,比如:

… site no. 1
… site no. 10
… site no. 2

之前,是按照title的字符进行升序排序了,排序结果就如上所示。这里和我们常规理解有所区别的就在于其排序是按照1、10、11、…、2、3进行排序的,而我们通常想要的结果是希望按照站点编号的自然数大小进行排序,即1、2、…、9、10…。

之前的sql语句是这样的:

… order by title

而要满足这个要求,第一个改造的结果是这样的:

… order by substring(title, ‘[^0-9]*’), (substring(title, ‘No.([0-9]+)’))::int

这样可以满足上面的需求,即No.1之类的标题可以排序,但若数字在中间就难以处理了,比如:

…10 July, 2012
…9 August, 2012

因此又继续改造:

…order by regexp_replace(title,'[0-9]+’,”,’g’),(substring(title, ‘([0-9]+)’))::int

这样可以解决上面的问题,但还是不完美,即有多个间断的数字,排序还是有问题的。
比如:

…10 July, 2012
…9 July, 2013

这种问题留待以后解决吧。

Apple Mail 空间清扫记

MacBook Pro的硬盘虽然比较大,但也很小啊,用着用着就快满了。于是开始清理硬盘。使用du命令逐个检查大容量目录:

发现Library目录有点大的异常(128G),进一步定位,发现是~/Library/Containers/com.apple.mail/Data/Library/Logs/Mail这个目录下的文件有异常:

 3.0G  3 15 20:46 imap.mxhichina.com-15057C89-1A29-4B77-8AC5-FD49C98539DE.txt

64G  3 15 20:46 mail.cstnet.cn-19697C05-495A-40CB-9A84-2728870BB205.txt

162M  3 15 20:46 mail.cstnet.cn-2A45BF1E-007C-4923-9C7F-3FD6443C85ED.txt

208M  3 15 20:46 p06-imap.mail.me.com-87D1B5E7-0919-431C-9F5A-FE9DEA59228D.txt

看到没?其中有个64G的log文件!估计是在mail中的邮件连接诊断->记录连接活动部分产生的,先取消这个功能。

将这些文件删除之,找回不少容量啊。

ubuntu不能挂载iso文件问题

我的mac升级后突然发现使用Virtualbox虚拟的ubuntu 15.10有点问题,于是想重新安装Virtualbox Guest Additions,但从菜单上挂载出现问题,于是尝试用命令行挂载:

 

提示有错误:

mount: unknown filesystem type ‘iso9660’

这个错误非常奇怪,第一次遇见。搜索后发现一个相关性很高的帖子:

http://ubuntuforums.org/showthread.php?t=1314412

按照帖子里给出的尝试步骤,发现使用这个命令就可以解决(之前尝试了几次apt-get update & dist-upgrade,都没有解决):

 

然后就可以挂载iso文件了。

使用 nginx+Tilestache 构建瓦片地图

之前有介绍 “使用tilestache构建瓦片地图服务器”,在我们的服务器上使用一段时间后,发现用其作为server,稳定性有一定问题。因此就考虑使用nginx直接提供静态地图文件,而只使用tilestache来生产瓦片。tilestache的瓦片缓存是按照一定的目录规则来实现的,即在url中表现为/layername/level/x/y.png,而在磁盘上存储的方式为/layername/level/umask/x/umask/y.png,所以需要进行rewrite转向。网上搜索后发现已经有人解决了这个问题:

http://andyfiedler.com/blog/using-nginx-to-proxy-tilestache-180/

 

在服务器上,按照上述的修改,即可满足实际需求。

 

正则:替换一行中的最后一个逗号

现在有个需求,需要将:

Wang T., Zhang J., Li S.

这种格式转换为:

Wang T., Zhang J. & Li S.

即将最后一个逗号转换为&符号。

搜索了一下,最后发现可以使用这种正则进行替换:

 

参考:

  1. http://house-of-fusion.10909.n7.nabble.com/How-to-find-the-last-comma-and-the-word-following-it-w-regex-td113028.html

ipv6域名强制解析为ipv4地址

今天使用数据中心的DOI注册功能后,突然发现后台验证的功能无法使用。代码没有动过,怀疑是服务器升级导致产生的,于是再本地升级到最新版后再进行测试发现正常,在服务器上升级后仍然有错误。看了代码,错误是在这一句导致的:

感觉这个代码应该没有问题,ping一下对应的网站,发现其默认是解析到ipv6网络了,同时ipv6网络不通,所以导致了这个问题。

临时解决办法:在/etc/hosts中将对应的域名直接解析为ipv4地址。