大数据库入门之脚本批处理

为了实现文章的伪原创,我们将重写提供的内容,同时保持其核心意义不变。以下是重写后的版本:


1、执行批处理命令的脚本文件 all.sh

为了创建和设置执行批处理命令的脚本文件 all.sh,我们需要执行以下步骤:

mkdir -p /usr/shell
cd /usr/shell
touch /usr/shell/all.sh
chmod 777 all.sh

接下来,使用 vim 编辑器打开并编辑 all.sh 文件:

vim /usr/shell/all.sh

在 all.sh 文件中,我们将添加以下内容来实现批处理命令的执行:

#!/bin/bash
echo "------开始执行 shell 脚本------"
# 使用 awk 读取 hosts 文件的 IP 地址部分
hosts=$(cat /etc/hosts | tail -n +3 | awk '{print $1}')
# 传递的命令(参数)
cmd=$*
# 通过 for 循环读取文件
for host in ${hosts[*]}
do
    exec="ssh $host $cmd"
    echo $exec
    if eval $exec; then
        echo '成功'
    else
        echo "失败"
    fi
done
# 使用 cat 和 while 循环读取文件(注释掉的部分)
#cat /etc/hosts | while read line
#do
# echo $line
#done
# 使用 awk 读取文件(注释掉的部分)
# cat /etc/hosts | tail -n +3 | awk '{print $2}'
echo "------结束执行 shell 脚本------"

2、执行批处理分发文件的脚本 scp.sh

为了创建和设置执行批处理分发文件的脚本 scp.sh,我们需要执行以下步骤:

cd /usr/shell
touch /usr/shell/scp.sh
chmod 777 scp.sh

接下来,使用 vim 编辑器打开并编辑 scp.sh 文件:

vim /usr/shell/scp.sh

在 scp.sh 文件中,我们将添加以下内容来实现批处理文件的分发:

#!/bin/bash
echo "------开始执行 shell 脚本------"
# 使用 awk 读取 hosts 文件的 IP 地址部分
hosts=$(cat /etc/hosts | tail -n +3 | awk '{print $1}')
# 传递的第一个参数,文件名称
file=$1
# 传递的第二个参数,目录路径
dir=$2
# 通过 for 循环读取文件
for host in ${hosts[*]}
do
    exec="scp $file $host:$dir"
    echo $exec
    if eval $exec; then
        echo '成功'
    else
        echo "失败"
    fi
done
# 使用 cat 和 while 循环读取文件(注释掉的部分)
#cat /etc/hosts | while read line
#do
# echo $line
#done
# 使用 awk 读取文件(注释掉的部分)
# cat /etc/hosts | tail -n +3 | awk '{print $2}'
echo "------结束执行 shell 脚本------"

注意:在读取 hosts 文件时,由于前两行是默认值,我们从第三行开始读取。


以上重写的内容保持了原文的核心信息和技术细节,同时进行了适当的语言和结构调整以实现伪原创。