PBS作业脚本处理

由于应用的特殊性,需要限制每个计算节点的ppn不能太多。但torque的手册中找不到关于ppn的属性限制,即使能限制的话也是限制提交脚本中的文本,而无法进行数量的控制,因此需要在qsub前进行输入脚本的检查。

需求:从作业脚本里面读取队列名和ppn,对于q1.1-q1.4要求ppn=2,q2.1-q2.16要求ppn=1;如果ppn不正确就给用户提示并退出,如果正确就调用系统原来的qsub提交任务。

首先是队列的获取,直接用sed获取即可,只需匹配到#PBS -q 后的字符串即可。根据需求,只需区分是q1还是q2即能满足要求:

sed -n ‘s/^#PBS.*-q \([0-9a-zA-Z.]\{2\}\).*/\1/p’ $1

其次是ppn的值。在作业脚本中,#PBS -l行中,可能有多个字段描述ppn,那么首先需要单独将ppn取出来。用sed、awk、tr都可以,但其实grep是最简单的。grep有个-o的选项,可以只将匹配到的内容显示出来而不是显示整行:

cat $1 | grep “^#PBS -l” | grep -o ‘ppn=[0-9]*’

由于可能存在多个ppn字段,所以需要通过循环判断出最大的ppn设置。

脚本如下:

#!/bin/bash

if [ “$1” = “” -o ! -f “$1” ]
then echo “Please put the job scpript file in the place close to the command $0, as \”$0 example.pbs\””
exit 1
fi

QUEUE=`sed -n ‘s/^#PBS.*-q \([0-9a-zA-Z.]\{2\}\).*/\1/p’ $1`
PPNMAX=0
for PPN in `cat $1 | grep “^#PBS -l” | grep -o ‘ppn=[0-9]*’ |tr -d ‘ppn=’`
do
if [ $PPN -gt $PPNMAX ]
then
PPNMAX=$PPN
fi
done

if [ $QUEUE = q2 -a $PPNMAX -gt 1 ]
then echo “for queue 2.x, the max ppn is 1, please revise your script and try again”
exit 1;
fi

if [ $QUEUE = q1 -a $PPNMAX -gt 2 ]
then echo “for queue 1.x, the max ppn is 2, please revise your script and try again”
exit 1;
fi

qsub $*

exit $?



发表在 Linux | 标签为 , , , | 留下评论

wordpress迁移到Amazon EC2

经过一天测试已经完成迁移了。

主要内容说起来比较简单,导出mysql数据,导入mysql数据,将html目录复制到新的空间,修改wordpress中新的数据库地址账号密码。

出现的问题:

1、无法连接RDS中的数据库。虽然在防火墙中添加了,但还是无法连接。后来发现问题在于,主机是Asia-Pacific,数据库却是USA。将数据库改到Asia-Pacific即可。看来大公司也有些细节也需要加强有人性化。

2、找不到原有账号,主页文章作者显示为空。登陆显示账号不存在。这是一个joke,原有的数据库通过phpAdmin导出,然后直接用mysql命令导入,竟然能基本正常,就是账号有问题。后来用mysqldump导出来,显然和phpAdmin导出的差别很大。将重新导出的数据再导入,账号正常了。

3、账号登录失败。输入账号密码后并不成功跳转,密码消失,如果输入错误的密码则提示密码错误。将浏览器cookie清除,登录正常。

4、固定链接无法找到。进入后台,重新设置固定链接选项,确定后即正常。

相比godaddy的共享主机,这种独立主机被盾的可能性小了许多,即使盾了大不了再换一个主机也很简单。

发表在 IT | 标签为 , , , , | 留下评论

rsync核心算法

 

rsync是 unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输。rsync中一项与 其他大部分类似程序或协定中所未见的重要特性是镜像是只对有变更的部分进行传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递 归拷贝。rsync利用由Andrew Tridgell发明的算法。这里不介绍其使用方法,只介绍其核心算法。我们可以看到,Unix下的东西,一个命令,一个工具都有很多很精妙的东西,怎么学也学不完,这就是Unix的文化啊。
本来不想写这篇文章的,因为原先发现有很多中文blog都说了这个算法,但是看了一下,发现这些中文blog要么翻译国外文章翻译地非常烂,要么就是介绍这个算法介绍得很乱让人看不懂,还有错误,误人不浅,所以让我觉得有必要写篇rsync算法介绍的文章。(当然,我成文比较仓促,可能会有一些错误,请指正)
问题
首先, 我们先来想一下rsync要解决的问题,如果我们要同步的文件只想传不同的部分,我们就需要对两边的文件做diff,但是这两个问题在两台不同的机器上,无法做diff。如果我们做diff,就要把一个文件传到另一台机器上做diff,但这样一来,我们就传了整个文件,这与我们只想传输不同部的初衷相背。
于是我们就要想一个办法,让这两边的文件见不到面,但还能知道它们间有什么不同。这就出现了rsync的算法。

继续阅读

发表在 Linux | 标签为 , | 4条评论

Linux加入AD

1.samba服务器软件需求
krb5-workstation-1.2.7-19
pam_krb5-1.70-1
krb5-devel-1.2.7-19
krb5-libs-1.2.7-19
samba-3.0.5-2
[root@filesrv CentOS]# rpm -qa|grep krb5
krb5-auth-dialog-0.7-1
krb5-libs-1.6.1-25.el5
krb5-devel-1.6.1-25.el5
pam_krb5-2.2.14-1
krb5-workstation-1.6.1-25.el5
[root@filesrv CentOS]# rpm -qa|grep samba
samba-swat-3.0.28-0.el5.8
samba-common-3.0.28-0.el5.8
samba-client-3.0.28-0.el5.8
samba-3.0.28-0.el5.8
如果centos在安装的时候没有取消默认选中的”Base”,则krb5的包是默认全部安装
如果没有选择安装samba可以这样安装
[root@filesrv CentOS]# rpm -ivh xinetd-2.3.14-10.el5.i386.rpm
[root@filesrv CentOS]# rpm -ivh –aid samba*.rpm

继续阅读

发表在 IT | 标签为 , , | 留下评论

垃圾般防火墙,win7下拨号失败

中文博大精深,本来只想简练地说垃圾两字,但怕被误解为垃圾邮件防火墙,垃圾短息防火墙,所以还是要加个字更明确点。
症状:
连接失败,错误为800
未建立远程连接。因为尝试的VPN隧道失败。VPN服务器可能无法访问。如果连接尝试使用的是L2TP/IPSEC 则 IPsec协商所需的安全参数可能配置错误。
解决办法:
将“安全”中的“数据加密”调低一点。我的修改为可选加密即可。

 

发表在 IT | 留下评论

redhat yum配置

将ISO挂载到/mnt。
修改配置文件:
[root@inode1 ~]# cat /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever – $basearch – Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta – $basearch – Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source]
name=Red Hat Enterprise Linux $releasever – $basearch – Source
baseurl=file:///mnt/Server/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

即可使用yum
yum search glibc
yum install glibc.i686
20120915更新:Redhat 6.3配置
文件/etc/yum.repos.d/rhel-source.repo
修改:
[rhel_6_iso]
name=local iso
baseurl=file:///public/redhalt6.3/
gpgcheck=1
gpgkey=file:///public/redhalt6.3/RPM-GPG-KEY-redhat-release
发表在 未分类 | 留下评论

辞旧迎新,继往开来,龙年大吉

2011年,是充实的一年。
2011年,是丰收的一年。
在这一年里,完成了人生的几件大事。在这一年里,开始对自己有所思考。
希望在新的一年里,辞旧迎新,继往开来!
刚刚查看了1月20日的小汽车指标配置中签结果,已配置了一个有效期到七月的指标。
希望龙年更比兔年好!
发表在 未分类 | 留下评论