当前位置: 首页 > news >正文

网站开发公司地址青岛网站推广系统

网站开发公司地址,青岛网站推广系统,网站做qq链接,阿里云做的网站程序员背景 在openlava运维中经常需要自动化一些常规操作,比如增加用户组以及组成员、删除用户组成员、删除用户组等。而openlava的配置文件需要手动修改,然后再通过badmin reconfig激活配置。因此开发脚本将手工操作自动化就很有必要。 通过将脚本中的User…

背景

在openlava运维中经常需要自动化一些常规操作,比如增加用户组以及组成员、删除用户组成员、删除用户组等。而openlava的配置文件需要手动修改,然后再通过badmin  reconfig激活配置。因此开发脚本将手工操作自动化就很有必要。

通过将脚本中的UserGroup替换为HostGroup,就可以对主机组进行操作。

此脚本也适用于 LSF 用户组管理;不过LSF支持通过bconf修改配置,不再需要badmin reconfig激活。

功能

下面的脚本就可以对openlava中的用户组进行操作:

* 增加用户组成员,如果组不存在则自动创建用户组;

* 删除用户组成员,如果组内已没有成员则自动删除用户组;

* 删除用户组

* 检查用户组是否包含成员;

参数

在使用之前需要设置以下参数:

LSF_PROFILE="/openlava/etc/openlava.sh"
GROUP_FILE="/openlava/etc/lsb.users"
LOG_FILE="/openlava/log/lavaug.log"
ADMIN="lsfadmin"

使用方法

1. 检查用户组是否包含成员

lavaug checkmember <group> <member>

返回码:0 包含 非0 不包含

2. 增加用户组成员

lavaug addmember <group> <member>

返回码:0 添加成功 非0 添加失败

3. 删除用户组成员

lavaug rmmember <group> <member>

返回码:0 删除成功 非0 删除失败

4. 删除用户组

lavaug rmgroup <group> 

返回码:0 删除成功 非0 删除失败

注:脚本会将操作以及错误写入日志文件,方便审记和排查错误。

源代码

#!/bin/bashlogger() {echo `date` $@ >>  $LOG_FILE
}# 判断配置文件中组名是否存在
is_group_defined() {local group=$1local file=$2# 使用 awk 查找在 "Begin UserGroup" 和 "End UserGroup" 之间的组名local group=$(awk -v group="$group" '/Begin UserGroup/,/End UserGroup/ { if ($1 == group) print $1 }' "$file")if [ -n "$group" ]; thenreturn 0elsereturn 1fi
}# 判断配置文件中的组中是否包含指定成员
is_member_in_group() {local group=$1local member=$2local file=$3# 使用 awk 查找在 "Begin UserGroup" 和 "End UserGroup" 之间的组名用用户名local result=$(awk -v group="$group" -v member="$member" '/Begin UserGroup/,/End UserGroup/ {if ($1 == group && index($0, member)) {print member}}' "$file")if [ -n "$result" ]; thenreturn 0elsereturn 1fi
}# 在配置文件中添加新成员到组中
add_group_member() {local group=$1local member=$2local file=$3# 创建临时文件local tmp_file=$(mktemp)# 使用 awk 处理文件,找到组名并添加新成员,其他行保持不变,输出到临时文件awk -v group="$group" -v member="$member" '/Begin UserGroup/,/End UserGroup/ {# 在组名后的括号内添加新成员,确保不重复添加if ($1 == group && !index($0, member)) {sub(/)/, " " member ")")}}{ print }' "$file" > "$tmp_file"# 替换原文件mv "$tmp_file" "$file"chown "$ADMIN":"$ADMIN" "$file"is_member_in_group "$group" "$member" "$file"return $?
}# 在配置文件中删除组成员, 成员列表为空时删除组
rm_group_member() {local group=$1local member=$2local file=$3# 创建临时文件local tmp_file=$(mktemp)# 使用 awk 处理文件,找到组名并删除成员,其他行保持不变,输出到临时文件awk -v group="$group" -v member="$member" '/Begin UserGroup/,/End UserGroup/ {# 在成员列表中删除指定成员, 若成员为空则删除组if ($1 == group && index($0, member)) {gsub(" *" member " *", " ")if ($2 == "(" && $3 == ")") {next}}}{ print }' "$file" > "$tmp_file"# 替换原文件mv "$tmp_file" "$file"chown "$ADMIN":"$ADMIN" "$file"if ! is_member_in_group "$group" "$member" "$file" ; thenreturn 0elsereturn 1fi
}# 在配置文件中创建新组并添加新成员
create_group() {local group=$1local member=$2local file=$3# 创建临时文件local tmp_file=$(mktemp)    # 使用 awk 处理文件,在 "End UserGroup" 前添加新组,如果 "Begin UserGroup" 和 "End UserGroup" 存在awk -v group="$group" -v member="$member" 'BEGIN { group_added = 0 }/Begin UserGroup/ {in_group = 1}/End UserGroup/ {if (!group_added) {print group " (" member ")"group_added = 1}in_group = 0}in_group { print }!in_group { print }' "$file" > "$tmp_file"# 如果没有找到 "Begin UserGroup" 和 "End UserGroup",则直接在文件末尾添加if ! is_group_defined "$group" "$tmp_file"; thenecho -e "\nBegin UserGroup\n"$group" ("$member")\nEnd UserGroup" >> "$tmp_file"fi# 替换原文件mv "$tmp_file" "$file"chown "$ADMIN":"$ADMIN" "$file"is_member_in_group "$group" "$member" "$file"return $?
}# 在配置文件中删除组
rm_group() {local group=$1local file=$2# 创建临时文件local tmp_file=$(mktemp)# 使用 awk 处理文件,找到组名并添加新成员,其他行保持不变,输出到临时文件awk -v group="$group" '/Begin UserGroup/,/End UserGroup/ {# 在组名后的列表中删除成员if ($1 == group) {next}}{ print }' "$file" > "$tmp_file"# 替换原文件mv "$tmp_file" "$file"chown "$ADMIN":"$ADMIN" "$file"if ! is_group_defined "$group" "$file"; thenreturn 0elsereturn 1fi
}# 检查系统内组是否存在
group_exist() {local group=$1bugroup $group > /dev/null 2>>$LOG_FILEreturn $?
}# 检查系统内组是否存在
group_missing() {local group=$1bugroup $group > /dev/null 2>>$LOG_FILEif [ $? -eq 0 ]; thenreturn 1elsereturn 0fi
}# 检查系统内用户是否存在于指定组
member_exist() {local group=$1local member=$2bugroup $group 2>>$LOG_FILE| grep -w $member >/dev/nullreturn $?
}# 检查系统内用户是否存在于指定组
member_missing() {local group=$1local member=$2bugroup $group 2>>$LOG_FILE| grep -w $member >/dev/nullif [ $? -eq 0 ]; thenreturn 1elsereturn 0fi
}# 激活配置文件中的变更
activate_change() {echo -e "y\nn\n" | badmin reconfig  >> $LOG_FILE 2>&1return $?
}run() {# 检查 LSF 环境变量是否已加载if [ ! -f "$LSF_PROFILE" ]; thenlogger [ERRO] "LSF_PROFILE not found: $LSF_PROFILE"exit 1fi# 检查用户文件是否存在if [ ! -f "$GROUP_FILE" ]; thenlogger [ERROR] "User file not found: $GROUP_FILE"exit 1fi# 加载 LSF 环境变量. $LSF_PROFILEgroupfile="$GROUP_FILE"action="$1"group="$2"member="$3"logger [INFO] request: $@case "$action" in"checkmember")member_exist "$group" "$member"ret=$?[ $ret -eq 0 ] && logger [INFO] "Found $member in $group" || logger [WARN] "Not found $member in $group"exit $ret;;"addmember")# 检查组名是否在指定范围内if is_group_defined "$group" "$groupfile"; thenif is_member_in_group "$group" "$member" "$groupfile"; thenmember_exist "$group" "$member"if [ $? -eq 0 ]; thenlogger [INFO] $member already in group $groupexit 0elseactivate_change && sleep 5 && member_exist "$group" "$member"ret=$?[ $ret -eq 0 ] && logger [INFO] "Add $member into $group succeeded" || logger [WARN] "Add $member into $group failed"exit $retfielse# 组名存在,但成员不存在,添加新成员add_group_member "$group" "$member" "$groupfile" && activate_change && sleep 5 && member_exist "$group" "$member"ret=$?[ $ret -eq 0 ] && logger [INFO] "Add $member into $group succeeded" || logger [WARN] "Add $member into $group failed"exit $retfielse# 组名不存在,创建新组并添加新成员create_group "$group" "$member" "$groupfile" && activate_change && sleep 5 && member_exist "$group" "$member"ret=$?[ $ret -eq 0 ] && logger [INFO] "Add $member into $group succeeded" || logger [WARN] "Add $member into $group failed"exit $retfi;;"rmmember")# 检查组名是否在指定范围内if is_group_defined "$group" "$groupfile"; thenif is_member_in_group "$group" "$member" "$groupfile"; thenmember_exist "$group" "$member"if [ $? -eq 0 ]; thenrm_group_member  "$group" "$member" "$groupfile" && activate_change && sleep 5 && member_missing "$group" "$member"ret=$?[ $ret -eq 0 ] && logger [INFO] "Remove $member from $group succeeded" || logger [WARN] "Remove $member from $group failed"exit $retelse# 组名存在,但成员不存在logger [INFO] "$member is not in $group"exit 0fielse# 组名存在,但成员不存在logger [WARN] "Not found $group"exit 0fielse# 组名不存在logger [WARN] "Not found $group"exit 0fi;;"rmgroup")if is_group_defined "$group" "$groupfile"; thenrm_group "$group" "$groupfile" && activate_change && sleep 5 && group_missing "$group"ret=$?[ $ret -eq 0 ] && logger [INFO] "Remove $group succeeded" || logger [WARN] "Remove $group failed"exit $retelif group_exist "$group"; then# 文件中没有组名,但系统中还有activate_change && sleep 5 && group_missing "$group"ret=$?[ $ret -eq 0 ] && logger [INFO] "Remove $group succeeded" || logger [WARN] "Remove $group failed"exit $retelselogger [WARN] "Not found $group"exit 0fi;;*)logger [WARN] "Invalid action: $action"exit 1;;esac
}##########################
#### Main Entry Start ####
########################### Please modify the LSF_PROFILE, GROUP_FILE, ADMIN accordingly
LSF_PROFILE="/openlava/etc/openlava.sh"
GROUP_FILE="/openlava/etc/lsb.users"
LOG_FILE="/openlava/log/lavaug.log"
ADMIN="lsfadmin"run $@

http://www.yayakq.cn/news/498850/

相关文章:

  • 网站单页在线十大网站黄页免费
  • 玄武模板网站制作报价餐饮类网站设计
  • 做网站为什么要备案淘宝客网站源码html
  • 外贸网站推广平台排名华泰保险公司官方网站电话
  • 1688做网站费用网站设计模板图片
  • 怎么做刷赞网站做古风文字头像的网站
  • 网站建设软件 优帮云网站建设与管理说课ppt
  • 如何做自己的博客网站深圳市住房和建设局红色警示
  • 合肥网站排名wordpress 排课
  • 广州网站设计公司兴田德润电话多少镇江做网站
  • 静态网站制作wordpress模版高端网站建设哪些好
  • 免费做背景调查的网站wordpress用户权限管理
  • 陕西网站建设电话wordpress支持建多个站点吗
  • html网站作业网站开发的需求文档
  • 深圳好的网站建设公司排名网页游戏设计与制作专业
  • 东莞南城网站制作渭南网站建设推广
  • 网站推广服务好公司排名免费门户网站
  • 酷站字体微信服务号绑定网站
  • 好用的网站后台wordpress域名授权破解版
  • 模板手机网站建设多少钱招商网站建设服务商
  • 淘宝代码网站有哪些网站模板下载html
  • 南昌个人做网站个人和做网站方签合同模板
  • 个人网站开发如何赚钱吗平阴网站建设
  • 制作网站学什么软件wordpress海外支付
  • 自助建站免费搭建个人网站网站开发项目报价单
  • 合肥专门做网站的公司有哪些做电影网站怎么样
  • 做网站管理员开会怎么演讲网页设计模板之家
  • 鞍山公司网站建设肇庆建设局网站
  • 沅江网站设计公司杭州seo营销公司
  • 企业网站服务器wordpress网站全过程