Linux下文件传输一般有两个命令scp、ftp(工具需要下载安装)

本文主要讲讲scp的文件传输脚本

1、scp ssh-keygen -t rsa免输入密码,传输

这里假设主机A 用来获到主机B的文件。

在主机A的用户根目录下执行如下命令来生成配对密钥:

ssh-keygen -t rsa

遇到提示回车默认即可,两次回车后,显示完成。公钥被存到用户目录下.ssh目录,比如root存放在:

/root/.ssh/id_rsa.pub

将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys,

到主机A中执行命令和主机B建立信任,例(假设主机B的IP为:192.168.100.4):

scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys (如果是集群之间实现秘钥免登录,authorized_keys里面的内容就只能累加,而不能这样直接修改文件名)

下面就可以用scp、ssh命令不需要密码来获取主机B的文件了

ssh 192.168.100.4 回车就不需要密码了。

注:其实id_rsa.pub内容添加到对方机器的authorized_keys中就行了

2、scp中使用expect 进行文件传输

脚本如下:

#!/bin/bash

time=`date +%Y%m%d_%H%M%S`
ip=`ifconfig eth0 |grep "inet addr"|awk -F ":" '{print $2}'|awk '{print $1}'` #获取机器的ip地址
if [ ! -d /tmp/back ]; then
mkdir -p /tmp/back
fi
cd /tmp/back
if [[ -d test ]]; then
rm -r -f /tmp/back
fi if [ $ = "script" ]; then #获取运行脚本是传入的参数,根据不同的参数备份不同的文件
if [ ! $ ]; then
    cp -r /home/www/scheduleshell /tmp/back #默认文件地址
  else
    cp -r -f $ /tmp/back
  fi elif [ $ = "crontab" ]; then
cp -r /var/spool/cron /tmp/back
else
echo "the words is not defined!"
exit
fi
cd /tmp/back
pwd
tar -zvcf $ip-$time-$.tar.gz ./*
/usr/bin/expect -c " #expect语句部分,根据命令行提示输入密码,没有考虑容错部分 crontab 使用的环境变量可能与我们手动执行的时候有点不一致,运行的时候加上绝对路径会好一点
set timeout 10
spawn scp -r /tmp/back/$ip-$time-$1.tar.gz root@172.*.*.176:/home/hefeng/
expect \"password:\" {send \"password\r\"}
spawn scp -r /tmp/back/$ip-$time-$1.tar.gz root@172.*.*.182:/home/hefeng/
expect \"password:\" {send \"password\r\"}
expect eof
exit #使用interact 在crontab下运行会有点问题
"
if [ $? !=0 ]; then
  echo "step for scp is failed"
  exit 0
fi
rm -r -f /tmp/back/*

Linux中crontab下scp文件传输的两种方式的更多相关文章

  1. 在本机eclipse中创建maven项目,查看linux中hadoop下的文件、在本机搭建hadoop环境

    注意 第一次建立maven项目时需要在联网情况下,因为他会自动下载一些东西,不然突然终止 需要手动删除断网前建立的文件 在eclipse里新建maven项目步骤 直接新建maven项目出了错      ...

  2. Linux经常使用的文件传输的几种方式

    Linux经常使用的文件传输的几种方式 1.终端新建stfp协议连接 或者命令方式: sftp -P22 root@192.168.11.100 端口可以不用填写,默认是22,端口的P是大写. 将本地 ...

  3. FTP文件传输协议两种模式 ftp协议集,错误码集,ftp客户端命令集

    TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20.FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置.联接的方式.甚至是是否使用相同的操 ...

  4. IOS文件操作的两种方式:NSFileManager操作和流操作

    1.常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path //从一个文件读取数据 -(BOOL)createFileAtPath: path cont ...

  5. Android中EditText显示明文与密文的两种方式

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录输入框显示.隐藏密码的简单布局以及实现方式. 效果图    代码分析 方式一 /**方式一:*/ private void sh ...

  6. 在eclipse中使用Maven建web工程的两种方式

    Eclipse版本:Neon Release (4.6.0) Maven版本:3.3.9 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建 ...

  7. 转载:删除github上文件夹的两种方式

    http://www.jianshu.com/p/286be61bb9b8 删除github上文件夹的两种方式(解决已经加入ignore的文件夹无法从远程仓库删除的问题) 如果此文件夹已被加入git追 ...

  8. .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格

    一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...

  9. java文件读写的两种方式

    今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOExceptio ...

随机推荐

  1. How To Use NSOperations and NSOperationQueues

    Update 10/7/14: This tutorial has now been updated for iOS 8 and Swift; check it out! Everyone has h ...

  2. 单元测试方法属性(Unit Test Method Attribute)

    Additional test attributes(可以在测试方法上使用的属性)As you have seen, the unit-testing subsystem within Visual ...

  3. ubuntu 下安装nodejs以及pm2

    ubuntu 12.04服务器可以使用apt-get方式安装Node JS,但是,安装完后的版本为v0.6.12的版本,如果我们想要使用新一点的版本需要做如下配置: 1 2 3 4 apt-get i ...

  4. JAVA常见算法题(十六)

    package com.xiaowu.demo; //猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个: //第二天早上又将剩下的桃子吃掉一半,而且又多吃了一个. //以后 ...

  5. nginx资源争夺问题

    nginx资源争夺问题 多个配置之间存在资源争夺的情况,需要进行整理: 学习了:https://blog.csdn.net/veryisjava/article/details/72917894 ng ...

  6. [Algorithms] Solve Complex Problems in JavaScript with Dynamic Programming

    Every dynamic programming algorithm starts with a grid. It entails solving subproblems and builds up ...

  7. json-server模拟接口获取mock数据

    转载:http://blog.csdn.net/stevennest/article/details/76167343 安装json-server 运行以下命令 cnpm install json-s ...

  8. TFS 设置(转)

    一 参考以下两个链接进行相关软件的安装和用户权限配置: http://www.cnblogs.com/WilsonWu/archive/2011/11/24/2261674.html http://w ...

  9. Oracle 左外连接的一些測试

    为了更加深入左外连接,我们做一些測试,外连接的写法有几种形式,我们能够通过10053跟踪到终于SQL转换的形式. --初始化数据 create table A (   id number,   age ...

  10. CHM乱码解决方案!

    --希望对您有所帮助,闲暇之余请访问我的网店高清数据线 下载了一个日文的chm帮助文件,打开的时候,发现是乱码, CHM 文档不像IE浏览器一样,右键可以选择字符编码,非常不便. 原因可能是 CHM ...