[工具] Python 批量执行多个 Linux 命令

介绍:

使用方法:
1 .将 192.168.0.1、192.168.0.2、192.168.0.3、192.168.0.4、192.168.0.5 的 root 密码设置为 1
2 .不修改 192.168.0.1、192.168.0.2、192.168.0.3、192.168.0.4、192.168.0.5 的任何 sshd 参数
3 .给此脚本添加执行权限
4 .执行此脚本

脚本:

#!/usr/bin/python3

from fabric.api import *
env.hosts = ['192.168.0.1','192.168.0.2','192.168.0.3','192.168.0.4','192.168.0.5']
env.port = '22'
env.user = 'root'
env.password = '1'

def files():
    with cd('/tmp'):
        run('touch test{1..10}')
        run('ls /tmp')
def command():
    run('uptime')

@task
def go():
    files()
    command()

[工具] Shell 查看可以无密码登陆系统的用户

脚本:

作者:朱明宇
名称:查看可以无密码登陆系统的用户
作用:查看可以无密码登陆系统的用户

使用方法:
1. 给此脚本添加执行权限
2. 执行此脚本

介绍:

#!/bin/bash

for name in `egrep '^.*\:!!\:.*$|^.*\:\*\:.*$' /etc/shadow | cut -d : -f 1`
do
        egrep '/sbin/nologin|/bin/false' /etc/passwd | egrep $name > /dev/null

        if [ $? -ne 0 ];then
                envi=`grep $name /etc/passwd | cut -d : -f 7`
                echo "$name has no password but maybe can access system, it is $envi"
        fi

done

[工具] Shell 检测服务器 SSH 端口的联通状态

介绍

#作者:朱明宇
#名称:检测服务器 SSH 端口的联通状态
#作用:检测服务器 SSH 端口的联通状态

#使用方法:
#1. 在此脚本的分割线内写入相应的内容
#2. 给此脚本添加执行权限
#3. 执行此脚本
#4. 如果联通检测失败则会将结果写入脚本同目录下的 checkserver.txt

脚本分割线里的变量:
host=”8.8.8.8″ #需要检测 SSH 端口联通性的服务器 IP 地址

脚本:

#!/bin/bash

####################### Separator ########################

host="8.8.8.8"

####################### Separator ########################

checktime=`date +%Y-%m-%d-%H-%M`
sleep 2 | telnet $host 22 | grep SSH

if [ $? -ne 0 ];then
	echo "$checktime server timeout" >> checkserver.txt
fi

[工具] Shell 批量修改多个远程服务器某一个用户的过期密码

介绍:

作者:朱明宇
名称:批量修改多个远程服务器某一个用户的过期密码
作用:批量修改多个远程服务器某一个用户的过期密码

#使用方法:
1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每一个远程服务器名或 IP 地址占用一行
3. 在此脚本的分割线内写入相应的内容
4. 在执行此脚本的系统上安装 expect
5. 给此脚本添加执行权限
6. 执行此脚本

脚本分割线里的变量:
1. oldpassword=123 #原密码
2. newpassword=abc #新密码
3. user=root #要修改密码的用户
4. list=servers.txt #指定服务器清单

脚本:

#!/bin/bash

####################### Separator ########################

oldpassword=123
newpassword=abc
user=root
list=servers.txt

####################### Separator ########################

set timeout 5

for i in `cat $list`
do
        echo $i
        ssh $i "whoami"

        if [ $? -eq 0 ];then
                continue
        fi

        expect << EOF
        spawn ssh $user@$i
        expect "Current password:"    {send "$oldpassword\r"}
        expect "New password:"        {send "$newpassword\r"}
        expect "Retype new password:" {send "$newpassword\r"}
        expect ">"                    {send "\r"}
        EOF

       echo

done

[命令] Linux 命令 [ ] (比较数值)

内容一:[ ] 符号的数值比较符号和方法

1) -eq 相等则结果为真
2) -ne 不等于则结果为真
3) -gt 大于则结果为真
4) -lt 小于则结果为真
5) -ge 大于或等于则结果为真
6) -le 小于或等于则结果为真

内容二:[ ] 符号的数值比较案例

# [ 0 -ne 1 ]
# echo $?
0

(补充:这里以测试 0 是否不等于 1 为例)