Linux VCS集群配置常用命令

VCS软件是Linux常用的软件,全称是Veritas Cluster Server,配置过程较为复杂,集群配置难度较高。我基本上是听到要配置这个东西就头大,因此Linux VCS集群敢都不敢碰啊~

最近需要将公司的VCS系统升级到6.0,写好文档,硬着头皮试了一把,果然各种坑。有句话说得好,计划赶不上变化。

顺便把Linux VCS常用的基础命令和问题定位方法做个总结。没有用过GUI图形界面,都是用命令完成的。

1、VCS日志和版本查看。

VCS引擎日志通常位于/var/VRTSvcs/log/下面,engine_A.log。

VCS代理日志通常位于/var/VRTSvcs/log下面,日志文件用节点名字来命名,如Ipaddress_A.log。

VCS版本和License查看:vxlicrep

2、VCS集群通信问题查看。

hastatus -sum

正常情况下会显示各个节点的通信状况,显示为online/offline状态。

如果输出类似如下结果,表明集群之间通信问题:

VCS:11307:Node has not received cluster menbership yet, cannot process HA command

如果输出类似如下结果,表明VCS的启动引擎有问题:

haserver STALE ADMIN WAIT: all system stale

这时候要检查LLT模块是否有问题,查看/etc/llthost/etc/llttab是否与预期配置的一致,检查心跳是否有问题。

3、GAB模块问题。

gabconfig -a

如果输出类似如下结果,表明GAB模块正常,否则需要检查/etc/gabtab文件。另外如果没有h端口输出,表明HAD有问题,见后文。

我升级的时候正好遇到了GAB故障,在engine_A.log中显示为启动失败,errno = 2,查阅官方Symentec的指导说是安装过程中安装包有问题,建议重装,心都碎了。

4、HAD模块问题。

hacf -verify /etcVRTvcs/conf/config

使用上述命令可以检查VCS配置是否正确,如果没有输出则表明正确。

5、集群的启动和停止。

hastart

hastop -local/-all   #停止本地或停止集群

6、节点切换。

使用hastatus -sum查看service group,可以将系统从online和offline中来回切换。

hagrp -switch service_group -to system

目前主要用到的就是这些命令,其他可以参考这里。

 

使用Python爬百度贴吧里面的美女图

大学时学过几年编程,毕业后虽然从事IT行业,却一直没有机会写代码。几年工作下来,看到我们公司的码农状态,竟然再也不想编程。算起来一个项目都没有完成过,日后想做码农也做不成了。

最近因为工作需要,跑去做段时间运维。Python作为脚本神器,自然要了解。初学Python,觉得还是找几个小项目练练手比较好。GitHub上“Python 练习册,每天一个小程序”便是我找的一些不错的题目。

于是第 0013 题自然而然的引起我的注意: 用 Python 写一个爬图片的程序,爬这个链接里的日本妹子杉本有美的图片。有了荷尔蒙的刺激,学习动力也提高不少。

先上一下效果图:

Python小程序效果图

程序简单解析如下:

1、使用urllib2打开网页链接,获取网页内容。

request = urllib2.Request(url)
response = urllib2.urlopen(request)
content = response.read()

2、使用正则表达式匹配需要获取的图片。

rule_str = r'src="(.+?\.jpg)"'
rule = re.compile(rule_str)
img_list = rule.findall(content)

3、筛选。

我这里默认需要下载的图片是链接中最多的,因此先计算寻找最多的图片链接的长度。然后将不是此长度的链接排除掉。这里使用了Counter这个函数,对每个链接的长度进行自动排序。

for img in img_list:
    len_temp.append(len(img))  # 计算每个图片链接的长度
most_length = tuple(Counter(len_temp).most_common(1))[0][0]  # 默认需要下载的图片是链接中最多的,寻找最多的图片链接的长度

4、下载图片。

for img in img_list:
    if len(img) != most_length:
        continue  # 不是目标图片,跳出继续
    else:
        pic = urllib2.urlopen(img).read()
        f = open(r"%s\%s%s.jpg" % (file_path, x, random.choice(string.ascii_letters)), "wb+")
        f.write(pic)
        f.close()
        x += 1

5、完整程序如下。

# -*- coding:UTF-8 -*-
import urllib
import urllib2
import re
from collections import Counter
import random
import string


def pic_download(url, file_path):
    # 打开网页
    # url = r'http://tieba.baidu.com/p/2166231880'
    request = urllib2.Request(url)
    response = urllib2.urlopen(request)
    content = response.read()
    # print content

    # 正则表达式
    rule_str = r'src="(.+?\.jpg)"'
    rule = re.compile(rule_str)
    img_list = rule.findall(content)

    print u"正在下载图片..."
    x = 0
    len_temp = []
    for img in img_list:
        len_temp.append(len(img))  # 计算每个图片链接的长度
    most_length = tuple(Counter(len_temp).most_common(1))[0][0]  # 默认需要下载的图片是链接中最多的,寻找最多的图片链接的长度

    for img in img_list:
        if len(img) != most_length:
            continue  # 不是目标图片,跳出继续
        else:
            pic = urllib2.urlopen(img).read()
            f = open(r"%s\%s%s.jpg" % (file_path, x, random.choice(string.ascii_letters)), "wb+")
            f.write(pic)
            f.close()
            x += 1

    print u"%s 张图片已被下载至指定位置" % x

# 主函数
if __name__ == "__main__":
    url = raw_input(r"Please input the BAIDU tieba link:")  # 请输入百度贴吧链接的帖子
    file_path = raw_input(r"Please input the file path(default: C:\Users\Wind\Pictures): ")  # 请输入想要保存图片的位置
    pic_download(url=r'http://tieba.baidu.com/p/1165861759', file_path=r"C:\Users\Wind\Pictures")

 

综上,只要输入百度任意帖子的链接,其中的图片无论是美女还是美景,就全部是你的囊中之物啦。Anyway,Python大法好!最后送上一张美图供大家欣赏~~

杉本有美

原创不易,转载请注明出处。