SSH权限问题
1、~/.ssh/authorized_keys的授权文件权限
chmod 644 authorized_keys
2、~/.ssh 文件夹的权限
chmod 700 .ssh
3、root用户下
只要不让别人写数据,就可以
编写脚本准备工作
学习centos基本命令,为shell做准备工作
$?//命令的返回值存储变量,0:成功 1:失败。
$#//参数个数
$n//获取n个参数
$0//当前脚本(命令)名称
$@//获取所有参数
shift//参数左移
# 是注释
编写shell脚本,头部要求声明解析命令:#!/bin/bash
1:熟悉centos中的shell脚本命令
a>获取文件名 echo 当前文件名:`basename 文件`
b>获取文件目录 echo 当前路径:`dirname 文件`
2.sh
echo 文件名:`basename $1`
echo 文件路径:`dirname $1`
1.编写一个简单的脚本:
a) 可以获取所有主机的主机名和用户
b) 主机名;hostname
c) 用户;whoami
2.编写一个简单的脚本2
a) 删除s250-s253之间的电脑文件
b) 删除/tmp/*下的所有文件
c) 删除/soft/hadoop/logs/*文件
配置全局jps
在/usr/local/bin配置一个jps的符号连接(软连接)
ln -s /soft/jdk/bin/jps /usr/local/bin/jps
将root用户实现无密登录
1.在~/.ssh下执行;ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
2.登录其他主机mkdir ~/.ssh
3.远程拷贝;scp ~/.ssh/id_rsa.pub root@s251:/root/.ssh/authorized_keys
rsync同步工具;可以复制链接
四个机器均安装rsync命令。
远程同步.
$>sudo yum install rsync
安装rsync脚本
#!/bin/bash
for (( i=201; i
echo 正在安装s$i的rsync
ssh mini$i yum -y install rsync
done ;
yum list installed | grep rsync 查询是否安装rsync软件
编写脚本
1.xcall.sh
#!/bin/bash
#获取所有参数
cmd=$@
for (( i = 250 ; i
echo ======正在执行s$i主机上的命令==============
ssh s$i "$cmd"
done;
2.copy.sh
#!/bin/bash
#获取第一个参数
cmd=$1
echo 传入的参数$cmd
#获取文件路径
filepath=`dirname $cmd`
echo 参数的文件路径$filepath
#获取文件的名称
filename=`basename $cmd`
echo 参数的文件名$filename
#进入文件路径
cd $filepath
#获取绝对路径
full=`pwd -P`
echo 参数的完整路径$full
user=`whoami`
for (( i = 251 ; i
#rsync -lr /soft/hadoop/etc centos@s251:/soft/hadoop
#echo ===== rsync -lr $full/$filename $user@s$i:$full =====
echo ===== 正在执行复制的主机:s$i ====
rsync -lr $full/$filename $user@s$i:$full
done;
领取专属 10元无门槛券
私享最新 技术干货