ELK搭建:http://www.mamicode.com/info-detail-1857697.html

nc端口嗅探:

nc -w 1 -z 124.160.61.162 4630-65535
-z 表示连接立即关闭,不进行数据交换。
-v 表示输出检测结果,-vv表示更详细的信息
-w 表示执行超时时间,如果不指定就是tcp超时的时间
-n 表示不反向解析IP地址的域名
-t 表示TCP检测,默认就是TCP检测;如果需要检测UDP,需要制定-u的参数


ping命令:

-l  指定包大小    
-n 指定ping次数

nohup ping -i 60 114.114.114.114 -D > ping.txt 2>&1 &

ping带日期的:
ping qq.com | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime())}'

nohup ping -i 1800 qq.com | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()); fflush()}' > china.txt 2>&1 &
 

ansible基础命令:

ansible test  -m ping

ansible test -m command -a "touch /home/cjc.log" 

ansible 10.0.4.64 -m command -a "touch /home/cjc.log"

ansible test -m copy -a "src=/home/aaa.tar(源文件) dest=/home/(目标目录) owner=root group=root mode=0777"

ansible test -m shell -a "ps -ef | grep zabbix |grep -v grep |awk '{print \$2}' | xargs kill -9"

sed -i "s/SELINUX=enforcing/SELINUX=disabled /g" /etc/selinux/config

ansible 10.0.4.64 -m shell -a 'cd /home && sed -i "s/qwe/qaqaqa/g" /home/cjc.log'

shell命令

在第一行前插入文本
sed -i '1 i\插入字符串' datafile

在最后一行后插入文本
sed -i '$ a\插入字符串' datafile

在匹配行前插入一行
sed -i '/pattern/ i "插入字符串"'' datafile

在匹配行后插入一行
sed -i '/pattern/ a "插入字符串"' datafile
 
给DROP前面全部加上注释
sed -i "s/^[^#].*DROP$/#&/g" iptables22.txt

取消DROP前面的注释
sed -i "/^#.*DROP$/s/^#//" iptables22.txt

shell模版脚本

#!/bin/bash

# 这个脚本演示了如何使用 getopts 函数解析命令行参数
if [ $# -eq 0 ];then
	echo -e "Usage:\033[31m bash $0\033[0m \033[33m(-A|-D|-L) -e (1h or more) -t (admin|view) -u AAA \033[0m"
    exit 1
fi


# 默认值
ACTION=""
EXPIRY=""
USER_TYPE=""
USER_NAME=""

# 解析命令行参数
while getopts "ADLe:t:u:" OPTION; do   # "ADLe:t:u:" 是选项字符串,其中每个字母都表示一个选项。冒号(:)表示该选项需要一个值。
    case $OPTION in
        A)
            ACTION="add-test $1"
            ;;
        D)
            ACTION="del-test $1"
            ;;
        L)
            ACTION="list-test $1"
            ;;
        e)
			# 当 $OPTION 是 e 时,设置 EXPIRY 变量为 $OPTARG,并检查 $OPTARG 是否符合正则表达式 ^[1-9][0-9]*h$。如果不符合,就输出错误信息并退出脚本。
            EXPIRY="$OPTARG"
            [[ $OPTARG =~ ^[1-9][0-9]*h$ ]] || { echo "'-e' must be set like '2h, 5h, 50000h, ...'"; exit 1; }
            ;;
        t)
            USER_TYPE="$OPTARG"
            [[ $OPTARG =~ ^(admin|root)$ ]] || { echo "'-t' can only be set as 'admin' or 'root'"; exit 1; }
            ;;
        u)
            USER_NAME="$OPTARG"
            ;;
        ?)
			# 如果 getopts 检测到了一个无法识别的选项,它会将 ? 存储到 $OPTION 中,并将无法识别的选项存储到 $OPTARG 中。此时,脚本会输出错误信息并退出。
            echo "Invalid option: -$OPTARG"  
            exit 1
            ;;
    esac
done

function add-test(){
# 打印解析的参数
echo "ACTION: $ACTION"
echo "EXPIRY: $EXPIRY"
echo "USER_TYPE: $USER_TYPE"
echo "USER_NAME: $USER_NAME"
}

function del-test(){
# 打印解析的参数
echo "ACTION: $ACTION"
echo "EXPIRY: $EXPIRY"
echo "USER_TYPE: $USER_TYPE"
echo "USER_NAME: $USER_NAME"
}

function list-test(){
# 打印解析的参数
echo "ACTION: $ACTION"
echo "EXPIRY: $EXPIRY"
echo "USER_TYPE: $USER_TYPE"
echo "USER_NAME: $USER_NAME"
}

${ACTION}

rsync+ssh钉钉同步备份

1、先要配置A到B服务器的ssh免密
2、安装rsync服务:yum -y install rsync
rsync -avh --bwlimit=2048 -e 'ssh -p 32022' /database/01bit_file/ root@192.168.20.100:/data/01bit_file/

ssh -p 32022  不是默认端口
/database/01bit_file/  源需要备份的目录
root@192.168.20.100:/data/01bit_file/  目标目录