返回顶部
首页 > 资讯 > 操作系统 >初学linux系统管理3
  • 802
分享到

初学linux系统管理3

系统linux 2023-01-31 06:01:54 802人浏览 独家记忆
摘要

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

在多台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

 

 

--结束END--

本文标题: 初学linux系统管理3

本文链接: https://lsjlt.com/news/189348.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 初学linux系统管理3
    在多台linux主机上执行相同的命令 By tianjing on 2011 年 06 月 05 日 有时候我们需要在若干台linux主机上执行相同的命令,或者安装相同的软件,可以使用如下两种方法: 实验环境,有9台RHEL5.5...
    99+
    2023-01-31
    系统 linux
  • 第3章 学生管理系统案例
    1.1 学生管理系统案例需求 利用集合完成对学生的增删改查四个功能 1.2 学生管理系统案例实现1.2.1 创建学生类: 1.2.1.1 案例代码九: package com.itheima; public class ...
    99+
    2023-01-31
    管理系统 案例 学生
  • JavaWeb实现学生信息管理系统(3)
    本文接着第二篇,继续为大家分享了JavaWeb实现学生信息管理系统,供大家参考,具体内容如下 今日任务:实现学生管理系统的删除、更新、修改和模糊查询功能! 一、删除学生信息 点击超链...
    99+
    2024-04-02
  • 学生管理系统
    学生信息管理系统设计 一、需求分析 1、开发背景: 信息化已经渗透到我们生活的方方面面,学校信息化的发展也是一种不可避免的趋势。伴随着高等院校招生规模的不断扩大,传统人工管理信息的方法不但不能满足这种管理上的需求,而且因为人员、资源成本的上...
    99+
    2023-09-25
    mysql
  • 跟我学管理(3)
    “硕士满街走,学士不如狗”,就是劣币驱逐良币。末尾淘汰法,每年一个企业总是从末尾淘汰一批员工,有新人进来,才会给企业带新的生机,没有人才流动的企业是必然死亡的。 因此说,机会的公平是应该的,理论是可以做到的,但实际中是非常难做到的...
    99+
    2023-01-31
    跟我学
  • Java版学生管理系统
    本文实例为大家分享了Java版学生管理系统的具体代码,供大家参考,具体内容如下 学生类 //学生类 public class Student {     //学号     pri...
    99+
    2024-04-02
  • 适合Linux系统初学的redhat系列有哪些
    本篇文章给大家分享的是有关适合Linux系统初学的redhat系列有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  Linux系统作为非常受欢迎的技术,其发行版本也是非常...
    99+
    2023-06-05
  • 初学littlefs文件系统
    概述 一个为微控制器设计的小故障安全文件系统。 掉电恢复能力: 设计用于处理随机电源故障。所有文件操作都有很强的写时拷贝保证,如果断电,文件系统将恢复到上一次已知的良好状态。 动态磨损均衡: 设计考虑到闪存,并提供动态块磨损均衡。此外,...
    99+
    2023-10-05
    服务器 运维 linux
  • [RHEL5系统管理攻略]--第3章 e
    3.2.3 提供日志式文件系统能力       在以后的章节中会讲到Linux内核会涉及到cache与buffer以提高读取磁盘的效率。但cache/buffer却会导致一些很严重的问题,尤其在RHEL非正常关机时。       在RHEL...
    99+
    2023-01-31
    攻略 系统
  • Android实现学生管理系统
    本文实例为大家分享了Android实现学生管理系统的关键性代码,供大家参考,具体内容如下 局部效果图:   实现代码: 1、布局 <?xml ver...
    99+
    2022-06-06
    学生管理系统 系统 Android
  • 学生成绩管理系统——JAVA
    学生成绩管理系统 1.简介 本学生成绩管理系统具有录入学生成绩、查询学生成绩、输出学 生按成绩的排名、输出学科的分数四个功能,其中后两个功能在“输出成绩”这一目录下。 此系统可以实现学生成绩管理的一些...
    99+
    2023-10-01
    java mysql 数据库 计算机视觉 爬虫
  • 【JAVA】学生信息管理系统
    目录 前言 一、环境搭建 二、功能实现 1.学生信息类的创建 2.学生信息的添加功能 3.学生信息的删除功能 4.学生信息的修改功能  5.学生信息的查看功能  三、主类的调用 1.界面的搭建 2.学生端和教师端 3.系统和功能的选择 总...
    99+
    2023-09-09
    java
  • Java——学生成绩管理系统
    一、项目简介 学生管理系统是一种基于计算机技术实现的学生信息管理工具,能够方便地对学生信息进行录入、查询、修改和删除。该项目采用 Java 语言编写,使用 Spring MVC 框架和 MySQL 数据库,实现了以上所述的主要功能,该学生管...
    99+
    2023-09-08
    mysql 数据库 开发语言 json
  • Python学生管理系统示例
    import os stus = [] # 学生信息列表(每个学生的信息以字段存储) def add_stu():sid = input('输入学生学号:')sname = input('输入学生姓名:')sage = input('输入...
    99+
    2023-01-31
    管理系统 示例 学生
  • springboot实现学生管理系统
    本文实例为大家分享了SpringBoot实现学生管理系统,供大家参考,具体内容如下 一、创建springboot项目 点击下一步 点击下一步,选择要添加的依赖 点击下一步,...
    99+
    2024-04-02
  • C#实现学生管理系统
    本文实例为大家分享了C#实现学生管理系统的具体代码,供大家参考,具体内容如下 添加3个类,分别实现 IComparer接口,实现对Student类的三个字段的排序。 1、学生类:学号...
    99+
    2022-11-13
    C#学生管理系统 C#学生系统 C#学生管理
  • JavaWeb实现学生管理系统
    JavaWeb实现学生管理系统 一、项目介绍二、项目结构三、前期准备1.配置maven环境,在pom.xml配置文件中配置项目所依赖的jar包2.在MySql数据库中,创建登录注册表login和学生信息表student(1)登录注册...
    99+
    2023-08-16
    servlet java 数据库
  • linux系统编程(3)
    一 线程间同步 同步:相互之间配合完成一件事情 互斥:保证访问共享资源的完整性(有你没我) POSIX 线程中同步:使用信号量实现 信号量 : 表示一类资源,它的值表示资源的个数 对资源访问: p操作(申请资源) [将资源的值 -...
    99+
    2023-01-31
    系统 linux
  • Linux syslog 系统日志管理
    Linux syslog 系统日志管理===============================================================================rsysl...
    99+
    2024-04-02
  • Linux系统程序包管理
    Linux程序包管理 API:Application Program Interface ABI:Application Binary INnterface Unix-like,系统上的二级制格式的应用程...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作