Linux下常用命令及脚本
scp:复制文件
格式scp 源文件地址 目标文件地址 参数:-r 递归
scp atguigu@192.168.1.13:/opt/software/hadoop-2.7.2.tar.gz software/ #有三种方式 从A主机推到B主机 在B主机上从A主机拉到B主机 在B主机上把文件从A上推到C主机上
rsync;更新文件
格式:rsync 源文件地址 目标文件地址 参数:-r 递归 -l 保持符号链接文件 -v 详细输出模式
rsync root@192.168.1.13:/etc/hosts /etc/hosts
ssh免密登录
$ cd ~/.ssh/ $ ssh-keygen -t rsa #然后连续按三次回车,会生成一个公钥和一个私钥 $ ssh-copy-id hadoop103 把公钥传给hadoop03机器,即可免密登录hadoop103 $
集群分发脚本
(1)在/usr/local/bin目录下创建xsync文件
[root@hadoop102 bin]# touch xsync [root@hadoop102 bin]# vi xsync #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=103; host<105; host++)); do #echo $pdir/$fname $user@hadoop$host:$pdir echo --------------- hadoop$host ---------------- rsync -rvl $pdir/$fname $user@hadoop$host:$pdir done
(2)修改脚本 xsync 具有执行权限
[root@hadoop102 bin]# chmod 777 xsync [root@hadoop102 bin]# chown tly:tly xsync
(3)调用脚本形式:xsync 文件名称
[atguigu@hadoop102 opt]$ xsync tmp/