linux集群批量命令 linux批量管理平台

Linux集群命令分发执行脚本如果没有运维人员或运维软件 , 但是又面临在一个集群中每台机器都执行一个命令时,总不能真的登录每一台吧 。那这里就起一个简单的命令分发执行脚本 。
0、确保脚本所在的机器能够免密登录到集群其他机器
SSH免密登录配置
1、将集群的IP都写入一个文件中
2、编写命令分发脚本
如果机器数量少,可以替换第三行语句为
如果机器IP配置的映射名有规律 , 也可以替换第三行语句为
同时后面的 $i 替换为 hadoop$i
3、测试
Linux一次在多个服务器运行命令如果您维护多个Linux服务器,则有时您希望在所有服务器上运行相同的命令 。例如,您可能希望安装/升级软件包,修补内核以及更新配置等 。如果您必须登录到每个服务器并手动运行相同的命令,那将是一项繁琐的工作 。
这篇文章是关于一个管理工具,它允许您一次在许多不同的机器上运行相同的命令 。
通过ClusterSSH,您可以同时在多个主机上进行相同的更改 。它提供了一个特殊的控制台界面,您在控制台中输入的任何内容都会自动发送到任意数量的主机 。
在Linux上安装ClusterSSH
在Ubuntu,Debian或Linux Mint上安装ClusterSSH:
$ sudo apt-get install clusterssh
要在CentOS或RHEL上安装ClusterSSH,首先需要设置EPEL存储库,然后运行以下命令 。
$ sudo yum install clusterssh
要在Fedora上安装ClusterSSH,只需运行:
$ sudo yum install clusterssh
配置ClusterSSH
安装后 , 第一步是定义要在其上运行命令的主机群集 。为此,请按如下方式创建系统范围的ClusterSSH配置文件 。
$ sudo vi / etc / clusters
clusters = my_cluster my_cluster2
my_cluster = host1 host2 host3 host4
my_cluster2 = host5 host6
如果您需要特定于用户的ClusterSSH配置,只需使用?/ .csshrc而不是/ etc / clusters 。在上面的示例配置中,我定义了两个集群:“my_cluster”由四个主机组成,“my_cluster2”包含两个主机 。群集是您要登录并运行命令的一组主机 。
当您使用任何用户定义的群集启动ClusterSSH时,它将使用ssh登录到群集中的各个主机,并在主机上运行任何用户类型的命令 。
启动ClusterSSH
要启动ClusterSSH,请按如下方式运行cssh命令 。
$ cssh -l dev my_cluster
在上文中,“dev”是群集中所有主机的登录ID , “my_cluster”是群集名称 。
如果需要,可以指定单个主机名而不是群集名 。
$ cssh -l dev host1 host2 host3
一旦CSSH执行命令时 , 它会弹出用于单个主机的XTerm窗口 , 以及标记的一个小窗口“CSSH [2]”,其是ClusterSSH控制台窗口 。无论您在控制台窗口中输入什么,都将同时出现在各个主机的XTerm窗口中 。基本上,您可以通过单一控制台窗口控制所有XTerm窗口 。
如果要将某些命令运行到特定的XTerm窗口,只需将焦点切换到Xterm窗口 , 然后像往常一样键入命令 。
以下屏幕截图显示了ClusterSSH的运行情况,其中群集中有五个主机,左上角的控制台窗口是您应该键入要在所有五个主机上运行的命令的位置 。
转自 嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证
Linux集群使用命令存储NAS 文件操作
df -h查看空间使用情况
警惕超大 nohup.out
【linux集群批量命令 linux批量管理平台】 任务提交
任务提交前
qhost--查看集群负载状态
qsub / qsub-sge.pl--提交任务
qstat--查看任务状态
qdel / qmod--任务控制
任务查看
qhost -j---列出所有用户在每个节点上linux集群批量命令的任务
qhost -q---列出每个节点上每个队列的任务数
qhost -u username---列出某个用户在每个节点上的任务
提交命令
qsub -cwd -q queue.q test.sh
qsub-sge.pl --maxproc 50 --resource vf=5G --queue queue.q test.sh
任务查看2
qstat -u username---查看某个用户的任务
qstat -u *,---查看所有用户的任务
qstat –j jobs_ID---查看某个任务的详细信息
查看.e和.o文件
.elinux集群批量命令:错误信息
.o:标准输出
任务控制
qdel jobID---删除某个任务
qdel -u username---删除某个用户的所有任务
qmod -s jobID--挂起某个任务
qmod -us jobID---继续运行某个挂起的任务
按任务占用内存大小选择相应的队列
查看队列 qstat -g c
QUEUE
PE.q--并行
cloud.q--云平台
general.q--96G节点
middle.q--96G节点
great.q--大内存节点
plus.q--大内存节点
single.q--Trinity组装
single._p.q---Trinity组装(占用内存较大)
TOP监视
编辑于 2017-04-21
Linux集群常用指令姓名:张昊楠学号:21021210691
存储NAS 文件操作
df -h查看空间使用情况
警惕超大 nohup.out
ls当前路径下的文件列表
pwd查看当前路径
cd进入某个文件夹
任务提交
任务提交前
qhost--查看集群负载状态
qsub / qsub-sge.pl--提交任务
qstat--查看任务状态
qdel / qmod--任务控制
任务查看
qhost -j---列出所有用户在每个节点上的任务
qhost -q---列出每个节点上每个队列的任务数
qhost -u username---列出某个用户在每个节点上的任务
提交命令
qsub -cwd -q queue.q test.sh
qsub-sge.pl --maxproc 50 --resource vf=5G --queue queue.q test.sh
任务查看2
qstat -u username---查看某个用户的任务
qstat -u *,---查看所有用户的任务
qstat –j jobs_ID---查看某个任务的详细信息
查看.e和.o文件
.e:错误信息
.o:标准输出
任务控制
qdel jobID---删除某个任务
qdel -u username---删除某个用户的所有任务
qmod -s jobID--挂起某个任务
qmod -us jobID---继续运行某个挂起的任务
按任务占用内存大小选择相应的队列
查看队列 qstat -g c
QUEUE
PE.q--并行
cloud.q--云平台
general.q--96G节点
middle.q--96G节点
great.q--大内存节点
plus.q--大内存节点
single.q--Trinity组装
single._p.q---Trinity组装(占用内存较大)
Linux多台主机批量执行命令指定一台主机作为信任主机,这样从这台主机登录其他机器就不需要密码了 。
设置信任主机:
假设有四台机器:192.168.2.1~192.168.2.4,其中192.168.2.1为信任机,那么在192.168.2.1上运行如下命令:
$.sh-keygen -t rsa //此处一路回车,生成秘钥
$scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘钥拷贝到其他远程机器
$ssh 192.168.2.2 ‘cat id_rsa.pub.ssh/authorized_keys’ //(远程执行命令)在远程机器上生成认证文件
经过这几步,从192.168.2.1 ssh登陆192.168.2.2时 , 就不会再需要输入密码了 。同样的步骤再执行3、4的极其 。
文本文件hostlist可以如下
192.168.2.2
192.168.2.3
192.168.2.4
#!/bin/shdoCommand(){
hosts=`sed -n'/^[^#]/p'hostlist`
forhostin$hosts
do
echo ""
echoHOST$host
ssh$host"$@"
done
return 0
}
if[$# -lt 1 ]
then
echo "$0cmd" exit
fi
doCommand "$@"
echo "return from doCommand"
执行命令(记得先对doCommand.s
h增加执行权限 chmod u x doCommand.sh)
./doCommand.sh “ls -al /root/”
这样该脚本就会在每台机器上执行”ls -al /root/”这个命令,并返回结果在信任主机上 。
如何为linux集群批量装机如果是REDHAT或者Centos操作系统linux集群批量命令,可以使用Cobbler软件来进行批量安装 。
可以使用以下方法部署CObbler
Cobbler是一个开源项目linux集群批量命令,用来部署和安装系统 。Cobbler不仅仅是一个pxe服务器,linux集群批量命令他还可以管理dns和dhcp 。一般数据中心里或者生产环境,是不允许dhcp, 但是pxe需要使用dhcp,所以我们这里根据mac地址来分配IP,这样dhcp就不会影响现有网络linux集群批量命令了 。
1. 首先关闭selinux
sudo sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
重新启动linux系统
2. 关闭防火墙iptables
sudo chkconfig iptables off
sudo chkconfig ip6tables off
sudo /etc/init.d/iptables stop
sudo /etc/init.d/ip6tables stop
3. 安装 epel 包
sudo yum install
4. 安装 Cobbler 和它需要的第三方工具包
sudo yum install cobbler cobbler-web xinetd pykickstart cman dhcp tftp-server bind
安装完成后需要设置几个服务自动启动
sudo chkconfig httpd on
sudo chkconfig dhcpd on
sudo chkconfig cobblerd on
sudo service httpd start
sudo service cobblerd start
注:此时dhcpd应该启动失败,因为还没有对dhcp做配置 。
5. 配置
5.1 修改/etc/xinetd.d/tftp
disable = yes
=
disable = no
5.2 修改/etc/xinetd.d/rsync
disable = yes
=
disable = no
5.3 编辑 /etc/cobbler/settings 文件,设置以下各项,其中 192.168.145.102 是当前机器IP 。
server: 192.168.145.102
next_server: 192.168.145.102
pxe_just_once: 1
manage_rsync: 1
manage_dhcp: 1
5.4 设置默认 root 用户的秘密
$ sudo openssl passwd -1 -salt 'random-phrase-here' 'Letmein'
然后将结果替换 /etc/cobbler/settings 文件中的
default_password_crypted:
5.5 设置 Cobbler Web访问的密码
sudo htdigest /etc/cobbler/users.digest "Cobbler" cobbler
5.6 编辑 /etc/cobbler/dhcp.template 文件,下面是我改动部分的配置信息
...
subnet 192.168.145.0 netmask 255.255.255.0 {
option routers192.168.145.102;
option domain-name-servers 192.168.145.1;
option subnet-mask255.255.255.0;
#range dynamic-bootp192.168.145.150 192.168.145.200;
default-lease-time21600;
max-lease-time43200;
next-server$next_server;
filename"/pxelinux.0";
host test { # 为指定机器指定ip地址
hardware ethernet 08:00:27:2C:30:8C;
fixed-address 192.168.145.155;
}
}
...
注意:如果在现有网段内已经有DHCP服务器,需要把 range dynamic-bootp 注释掉,否则会有冲突 。这个地方需要特别注意,要根据自己的网络情况来设置 。
5.7 重启服务
sudo service xinetd restart
sudo service httpd restart
sudo service cobblerd restart
5.8 启动和检测 cobbler
sudo cobbler get-loaders
sudo cobbler check
此时如果有错误,cobbler会提示,可以根据提示来修复 。但是对参数的任何修改都需要使用下面的命令来使其生效
sudo cobbler sync
5.9 Web 测试
访问
用户名/密码:cobbler/Letmein
6. 导入系统镜像
这里假定使用CentOS-6.6-x86_64来测试
sudo mount -t auto -o loop /home/kongxx/share/os/CentOS-6.6-x86_64-bin-DVD1.iso /mnt
sudo cobbler import --path=/mnt --name=CentOS-6.6 --arch=x86_64
运行这两条命令后,可以使用下面的命令来查看了
$ sudo cobbler distro list
$ sudo cobbler profile list
也可以通过 Web 界面的 Distros 和 Profiles 来查看 。
7. 自动安装系统
由于是在家里的虚拟机里做测试,所以没法使用 IPMI 来管理物理机 。这里就只测试一下新的虚拟机可以通过PXE来自动安装系统 。
使用VirtualBox创建一个虚拟机,网络设置使用和上面同样的桥接模式 。但是在 "虚拟机设置- 系统 - 启动顺序" 里把网络勾上并上移到第一位,然后启动虚拟机 。此时就可以进入 Cobbler 的网络安装界面 , 选择上面创建的 CentOS-6.6-x86_64 然后就可以自动安装了 。装完后 , 记得把虚拟机启动顺序改回到硬盘启动优先 , 然后就可以启动新安装的虚拟机了 。
关于linux集群批量命令和linux批量管理平台的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读