=======================================================================================================================================
编写脚本准备工作
1.熟悉centos中的shell脚本命令:$?,$#,$n,$0,$@,shift,#
2.学习centos基本命令,为shell做准备工作
a>获取文件名 echo 当前文件名:`basename 文件`
b>获取文件目录 echo 当前路径:`dirname 文件`
$? //命令的返回值存储变量,0:成功 1:失败。
$# //参数个数
$1 //第几个参数
$0 //当前脚本(命令)名称
$@ //取出所有参数
shift //参数左移
----------xcall.sh
#!/bin/bash
cmd=$@
echo 当前命令:$cmd
for (( i = 200 ; i <= 203 ; i = i+1 )) ; do
echo ===========正在执行s$i主机上的命令==========
ssh s$i $cmd
done ;
-----------copy.sh
#!/bin/bash
#获取传入的参数
cmd=$1
echo 传入的参数$cmd
#获取文件路径
filepath=`dirname $cmd`
echo 文件路径为 $filepath
#获取文件名称
filename=`basename $cmd`
echo 文件名称为 $filename
#获取绝对路径
full=`pwd -P`
echo 绝对路径为 $full
#当前用户名
user=`whoami`
for (( i = 201 ; i <= 203 ; i = i + 1 )) ; do
#echo =====rsync -lr $full/$filename $user@s$i:$full=====
echo ===== 正在执行主机s$i的复制 =====
#echo rsync -lrv /usr/local/bin/jps $user@s$i:/usr/local/bin
#rsync -lrv $cmd $user@s$i:/$filepath
rsync -lrv $full/$filename $user@s$i:/$full
done;
♂文件路径和绝对路径好像一样哎(ˉ▽ ̄~) 切~~
-----------dele.sh
#!/bin/bash
cmd=$@
echo 传入的参数: $cmd
filepath=`dirname $cmd`
echo 目录名: $filepath
filename=`basename $cmd`
echo 文件名: $filename
for (( i = 201 ; i <= 203 ; i = i + 1 )) ; do
echo ====正在执行主机s$i的删除====
ssh s$i rm -rvf $cmd
done;