我的编程空间,编程开发者的网络收藏夹
学习永远不晚

初学linux系统管理3

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

初学linux系统管理3

在多台linux主机上执行相同的命令
By tianjing on 2011 年 06 月 05 日

有时候我们需要在若干台linux主机上执行相同的命令,或者安装相同的软件,可以使用如下两种方法:

实验环境,有9台RHEL5.5_x64的主机,host表如下:

test-1        10.9.1.1

test-2         10.9.1.2

test-3        10.9.1.3

test-4         10.9.1.4

test-5         10.9.1.5

test-6         10.9.1.6

test-7          10.9.1.7

test-8          10.9.1.8

test-login      10.10.1.1

其中test-login为登陆节点,test-login到其他8台主机的ssh信任连接已经建立。

方法一:

for  i  in  {1..8}; do ssh test-$i ‘hostname; mkdir –p /root/test’; done

如果ssh后面有多条命令要在远程主机上执行,必须用引号把所有的命令括起来,否则只会有第一条命令在远程主机上执行。

 

方法二:

安装tentakel, tentakel是一个可以在多台linux主机上执行相同命令的脚本。

下载tentakel-2.2.tgz,解压后make && make install

配制tentakel,把tentakel.conf.simple拷贝为/etc/tentakel.conf,编辑该配置文件:

# first section: global parameters
set ssh_path="/usr/bin/ssh"                  //设置ssh的路径
set method="ssh"                                //设置命令使用的方法,先ssh到目标主机,然后执行相关的命令
#set user="root"        # 设置ssh时使用的帐号,如果不指定,用户为使用tentakel的帐号
#set format="%d %o\n"
#set maxparallel="3"    # run at most 3 commands in parallel

# second section: groups
group default ()                            //默认的组,也可以使用-g参数指定不同的主机组
        @test

group test ()
        +test-1
        +test-2
        +test-3
        +test-4
        +test-5
        +test-6
        +test-7
        +test-8

group test-login ()
        +test-login

group all ()
        @test
        @test-login

上面这个配制文件定义了三个主机组,@test包括了test1-test8这8台节点,@test-login包括了test-login这台节点,@all包括了@test和@test-login这两个主机组,共9台节点。同时定义了默认主机组为@test。

常用的参数:

tentakel –l   列出可用的主机组

tentakel –g groupname‘command’在groupname上执行command,command要用引号引起来。

配置完成以后发现报错:

tentakel –g test  ‘hostname’
Traceback (most recent call last):
  File "/usr/local/bin/tentakel", line 42, in ?
    import lekatnet.error as error
ImportError: No module named lekatnet.error

原因是没有拷贝lekatnet文件:cp -r py/lekatnet/ /usr/lib/python2.4/site-packages/

tentakel –g test ‘mkdir –p /root/test’

sun grid engine简单使用
1. 安装sge

安装master节点:

安装执行主机:

1.配置主机的host表。

2.把要安装的目标主机添加为管理主机: qconf –ah hkdev-4

3.在目标节点上新建sgeadmin用户,拷贝整个安装包到目标主机

4.配置service 端口:

   Vim /etc/service添加两行:

   sge_qmaster  50001/tcp
   sge_execd    50002/tcp

5. 把头节点的/opt/gridengine拷贝到计算节点,运行./install_execd,默认安装即可。

6. 设置环境变量vim /etc/profile.d/sge.sh

SGE_ROOT=/home/sgeadmin/sgeroot; export SGE_ROOT

ARCH=`$SGE_ROOT/util/arch`
DEFAULTMANPATH=`$SGE_ROOT/util/arch -m`
MANTYPE=`$SGE_ROOT/util/arch -mt`

SGE_CELL=sgetest; export SGE_CELL
SGE_CLUSTER_NAME=p50001; export SGE_CLUSTER_NAME
unset SGE_QMASTER_PORT
unset SGE_EXECD_PORT

if [ "$MANPATH" = "" ]; then
   MANPATH=$DEFAULTMANPATH
fi
MANPATH=$SGE_ROOT/$MANTYPE:$MANPATH; export MANPATH

PATH=$SGE_ROOT/bin/$ARCH:$PATH; export PATH
# library path setting required only for architectures where RUNPATH is not supported
case $ARCH in
sol*|lx*|hp11-64)
   ;;
*)
   shlib_path_name=`$SGE_ROOT/util/arch -lib`
   old_value=`eval echo ‘$’$shlib_path_name`
   if [ x$old_value = x ]; then
      eval $shlib_path_name=$SGE_ROOT/lib/$ARCH
   else
      eval $shlib_path_name=$SGE_ROOT/lib/$ARCH:$old_value
   fi
   export $shlib_path_name
   unset shlib_path_name old_value
   ;;
esac
unset ARCH DEFAULTMANPATH MANTYPE

 

注意:1.sge整个安装包的用户和组权限应该是sgeadmin,sge目录应该保证其他用户可读。

        2.要求关闭防火墙或者打开端口,我选择了关闭防火墙

2.添加队列:

新建一个队列hiseq.q:

[root@hkdevlogin-1 ~]# qconf -aq hiseq.q   //队列名

qname                 hiseq.q   //队列名
hostlist              @hiseqhosts  //主机组,定义这个队列中包含的所有主机
seq_no                0

slot                    100                      //可以使用的资源

notify                00:00:60
owner_list            NONE
user_lists            dms                //用户列表,这个列表中的用户允许使用该队列,其他的用户不允许使用该队列
xuser_lists           NONE

qconf –sql 可以查看所有的队列

[root@hkdevlogin-1 ~]# qconf -sql
all.q
hiseq.q
prs.q

qconf –sq  队列名  可以查看某一个队列的配置信息

定义@hiseqhosts主机组:

[root@hkdevlogin-1 ~]# qconf -mhgrp @hiseqhosts

group_name @hiseqhosts
hostlist hkdev-1.genomics.org.cn hkdev-2.genomics.org.cn\          //多个主机需要换行时需要加”\”

hkdev-3.genomics.org.cn

qconf –shgrpl 可以查看所有的主机组

[root@hkdevlogin-1 ~]# qconf -shgrpl           
@allhosts
@hiseqhosts
@prshosts

qconf –shgrp 组名   可以查看某个主机组信息

定义用户列表 dms:

[root@hkdevlogin-1 ~]# qconf -mu dms         

name    dms        //用户组名称
type    ACL DEPT
fshare  0
oticket 0
entries dms             //该用户组中的用户,多个用户用逗号隔开

qconf  -sul  可以查看所有的用户组

[root@hkdevlogin-1 ~]# qconf -sul           
arusers
deadlineusers
defaultdepartment
dms
prs
test

qconf  -su  用户组名   可以查看某个用户组的信息

[root@hkdevlogin-1 ~]# qconf -su prs
name    prs
type    ACL DEPT
fshare  0
oticket 0
entries prs

注 :要使用sge,必须在每个节点上都建立同一个帐号,相同的uid和gid

查看队列中主机的情况:

qselect –q  队列名称

[root@hkdevlogin-1 ~]# qselect -q hiseq.q  
hiseq.q@hkdev-2.genomics.org.cn
hiseq.q@hkdev-1.genomics.org.cn
hiseq.q@hkdev-3.genomics.org.cn

3. qstat使用:

qstat –f

qstat –explain

qstat –j jobid

4. qmod使用:

qmod –cq  队列名

qmod -cj  job名

5. 修改默认shell

   [root@hkdevlogin-1 ~]# qconf –mconf                 //编辑sge的配置文件

   login_shells                 bash,sh,ksh,csh,tcsh          //把默认shell改为bash

[root@hkdevlogin-1 ~]# qconf -mq all.q                   //编辑队列配置文件

shell                 /bin/bash                                      //把默认的shell改为bash

6. 限制单个计算节点可以使用的资源

[root@hkdevlogin-1 ~]# qconf -me hkdev-1

hostname              hkdev-1.genomics.org.cn
load_scaling          NONE
complex_values        slots=24,virtual_total=32G             //这个值不设置的话默认可以使用的值为无限大,任务较多的时候容易把节点跑死掉。
user_lists            NONE
xuser_lists           NONE
projects              NONE
xprojects             NONE
usage_scaling         NONE
report_variables      NONE

7. sge简单使用

qsub –cwd –l vf=1G –q common.q –l h=compute-0-0 test.sh

test.sh:

#!/bin/bash

#$ –S /bin/bash

sleep 100;

8. 启用-l vf参数

[root@qcs script]# qconf –mc

#name               shortcut   type        relop requestable consumable default  urgency
#—————————————————————————————-

virtual_free        vf         MEMORY      <=    YES         YES        0        0
Posted in Linux Tagged sge

 

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

初学linux系统管理3

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

初学linux系统管理3

在多台linux主机上执行相同的命令By tianjing on 2011 年 06 月 05 日有时候我们需要在若干台linux主机上执行相同的命令,或者安装相同的软件,可以使用如下两种方法:实验环境,有9台RHEL5.5_x64的主机,
2023-01-31

第3章 学生管理系统案例

1.1 学生管理系统案例需求 利用集合完成对学生的增删改查四个功能1.2 学生管理系统案例实现1.2.1 创建学生类: 1.2.1.1 案例代码九:package com.itheima;pub
2023-01-31

跟我学管理(3)

“硕士满街走,学士不如狗”,就是劣币驱逐良币。末尾淘汰法,每年一个企业总是从末尾淘汰一批员工,有新人进来,才会给企业带新的生机,没有人才流动的企业是必然死亡的。因此说,机会的公平是应该的,理论是可以做到的,但实际中是非常难做到的。多人分配一
2023-01-31

初中学历能报名系统规划与管理师吗

  可以。系统规划与管理师报名不设学历与资历条件、年龄以及专业等要求限制,只要达到相应的技术水平就可以报考,考生可根据自己的技术水平选择软考合适的级别与资格进行报考。  软考系统规划与管理师报名没有学历要求,所以初中学历也可以报考。根据《计算机技术与软件专业技术资格考试暂行规定》第八条相关规定:凡遵守中华人民共和国宪法
初中学历能报名系统规划与管理师吗
2024-04-19

初中学历能报名信息系统管理工程师吗

  可以。信息系统管理工程师报名不设学历与资历条件、年龄以及专业等要求限制,只要达到相应的技术水平就可以报考,考生可根据自己的技术水平选择软考合适的级别与资格进行报考。  软考信息系统管理工程师报名没有学历要求,所以初中学历也可以报考。根据《计算机技术与软件专业技术资格考试暂行规定》第八条相关规定:凡遵守中华人民共和国
初中学历能报名信息系统管理工程师吗
2024-04-18

初中学历能报名信息系统项目管理师吗

  可以。信息系统项目管理师报名不设学历与资历条件、年龄以及专业等要求限制,只要达到相应的技术水平就可以报考,考生可根据自己的技术水平选择软考合适的级别与资格进行报考。  软考信息系统项目管理师报名没有学历要求,所以初中学历也可以报考。根据《计算机技术与软件专业技术资格考试暂行规定》第八条相关规定:凡遵守中华人民共和国
初中学历能报名信息系统项目管理师吗
2024-04-19

适合Linux系统初学的redhat系列有哪些

本篇文章给大家分享的是有关适合Linux系统初学的redhat系列有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  Linux系统作为非常受欢迎的技术,其发行版本也是非常
2023-06-05

[RHEL5系统管理攻略]--第3章 e

3.2.3 提供日志式文件系统能力      在以后的章节中会讲到Linux内核会涉及到cache与buffer以提高读取磁盘的效率。但cache/buffer却会导致一些很严重的问题,尤其在RHEL非正常关机时。      在RHEL开机
2023-01-31

Android实现学生管理系统

本文实例为大家分享了Android实现学生管理系统的关键性代码,供大家参考,具体内容如下 局部效果图: 实现代码: 1、布局
2022-06-06

C#实现学生管理系统

这篇文章主要为大家详细介绍了C#实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2022-11-13

Python学生管理系统示例

import osstus = [] # 学生信息列表(每个学生的信息以字段存储)def add_stu():sid = input('输入学生学号:')sname = input('输入学生姓名:')sage = input('输入学生
2023-01-31

JavaWeb实现学生管理系统

JavaWeb实现学生管理系统 一、项目介绍二、项目结构三、前期准备1.配置maven环境,在pom.xml配置文件中配置项目所依赖的jar包2.在MySql数据库中,创建登录注册表login和学生信息表student(1)登录注册
2023-08-16

编程热搜

目录