精华内容
下载资源
问答
  • lftp上传文件shell脚本

    千次阅读 2019-07-04 11:57:02
    写一个shell脚本 用crontab定时执行。 重点 1 路径问题 因为是crontab定时执行,所以都是绝对路径。我把脚本放在跟需要上传的文件同级目录下,然后获取当前路径,这样就不会存在找不到路径的问题。 2 脚本开头...

    先说下业务需求,我们需要定时上传昨天产生的统计文件给其他服务器。写一个shell脚本 用crontab定时执行。

    重点

    1 路径问题  因为是crontab定时执行,所以都是绝对路径。我把脚本放在跟需要上传的文件同级目录下,然后获取当前路径,这样就不会存在找不到路径的问题。

    2 脚本开头需要引入环境   source ~/.bash_profile  这句话很重要

    3 服务器需先安装lftp  命令 yum -y install lftp

    #!/bin/bash
    source ~/.bash_profile 
    #获取当前文件当前路径
    positionPath=$(cd "$(dirname "$0")"; pwd)
    #获取昨天时间
    DATA=`date -d "yesterday" +%Y%m%d`
    #需要发送的文件名
    #filename="userInfoData.$DATA.*"
    filename="*.*.*.gz"
    #要发送的主机名 
    HOST=  
    USERNAME=
    PASSWORD=
    
    startTime=`date "+%Y-%m-%d %H:%M:%S"`
    startTimeStamp=`date -d "$startTime" +%s`
    basedir=$positionPath
    file_regex="*.*.*.gz"
    logfile=$basedir/sftp.`date "+%Y%m%d"`.iot
    echo "####startTime:$startTime start sftp $filename=======" | tee -a ${logfile}
    filecnt=`find $basedir -name $file_regex |wc -l`
    if [ $filecnt -ge 0 ];then
    	echo "here has $filecnt files need to be sftp to bigdata!"|tee -a ${logfile}
    	lftp -u $USERNAME,$PASSWORD sftp://$HOST<<EOF
      cd /home/wangr/w2/
      lcd $positionPath
      mput $filename
      bye 
    EOF
    echo "ok"
    else
    	echo "here no file need to be sftp to bigdata" |tee -a ${logfile}
    fi
    endTime=`date "+%Y-%m-%d %H:%M:%S"`
    endTimeStamp=`date -d "$endTime" +%s`
    echo "== total == time consuming: "$(($endTimeStamp - $startTimeStamp))"s" | tee -a ${logfile}
    

    因为之前服务器没安装lftp  所以还写了个python版本备用,可以参考下

    #!/usr/bin/python
    # coding=utf-8
    import os,sys
    import paramiko
    
    from datetime import datetime, date, timedelta
    
    yesterday = (date.today() + timedelta(days = -1)).strftime("%Y%m%d")
    #print(yesterday)
    file="userInfoData."+yesterday
    host =''
    user = ''
    password = ''
    def getFileName(path):
        ''' 获取指定目录下的所有指定后缀的文件名 '''
    
        f_list = os.listdir(path)
        for i in f_list:
            # os.path.splitext():分离文件名与扩展名
            if os.path.splitext(i)[1] =='.txt':
    	        if i.startswith(file):
                  t = paramiko.Transport(host)
                  t.connect(username=user,password=password)
                  sftp = paramiko.SFTPClient.from_transport(t)
                  sftp.put(i,'/home/dr_dev/W/'+i)
                  t.close()
                  print('ok')
    
    
    if __name__ == '__main__':
    
        path = '/logs/userInfoData/'
        getFileName(path)
    

    以及sftp的版本备用

    #!/bin/bash
    source ~/.bash_profile 
    #获取当前文件当前路径
    positionPath=$(cd "$(dirname "$0")"; pwd)
    #获取昨天时间
    DATA=`date -d "yesterday" +%Y%m%d`
    #需要发送的文件名
    filename="userInfoData.$DATA.*"
    targetpath='/home/dev/W'
    tfilename="userInfoData.$DATA.0.txt"
    echo "开始发送文件$filename"
    
    sftp username@password << EOF
    put $positionPath/$filename $targetpath/$tfilename
    quit
    EOF
    echo "ok"

     

    展开全文
  • Lftp是一个基于命令行的文件传输软件(也被称为FTP客户端),由Alexander Lukyanov开发并以GNU GPL协议许可发行。除了FTP协议外,它还支持FTPS,HTTP,HTTPS,HFTP,FISH,以及SFTP等协议。这个程序还支持FXP,允许...

    Lftp是一个基于命令行的文件传输软件(也被称为FTP客户端),由Alexander Lukyanov开发并以GNU GPL协议许可发行。除了FTP协议外,它还支持FTPS,HTTP,HTTPS,HFTP,FISH,以及SFTP等协议。这个程序还支持FXP,允许数据绕过客户端直接在两个FTP服务器之间传输。

     

    1. 服务器端: 加密类型:TLS/SSL显式加密

    2. 客户端ftp命令无法正常访问,安装lftp

    sudo apt-get install lftp

    此时使用lftp连接服务器,出现

    严重错误: Certificate verification: certificate common name doesn’t match requested host name `*******.org’

    3.修改/etc/lftp.conf,添加如下内容即可解决

    #for ssl ftp
    set ssl:verify-certificate no

    展开全文
  • 1、lftp name@site 回车 输入密码2、lftp name:password@site 回车3、lftp site 回车login 用户名 密码4、lftp 回车 open site 回车 login 用户名 密码lftp上传文件命令上传单个文件代码如下lftp webmaster@phpyuan....

    lftp连接的几种方法,最常用的是lftp name@site,这样可以不用明文输入密码。

    1、lftp name@site 回车 输入密码

    2、lftp name:password@site 回车

    3、lftp site 回车login 用户名 密码

    4、lftp 回车 open site 回车 login 用户名 密码

    lftp上传文件命令

    上传单个文件

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> put test.txt ./

    put: /root/Desktop/new/test: Is a directory

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> mput *.txt ./

    整站上传

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> mirror -R test ./test

    Total: 1 directory, 2 files, 0 symlinks

    New: 2 files, 0 symlinks

    lftp下载文件命令

    get下载单个文件

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> get html.php

    8473 bytes transferred

    选择某个目录下某种扩展名的下载

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/你的目录> mget *.php

    [0] mget *.php &

    `image_class.php' at 0 (0%) [Making data connection...]

    mget

    断点续传功能

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> mget -c ./ 你的目录/*.*

    mget: /root/Desktop/new: Is a directory

    [0] mget -c ./ 你的目录/*.* &

    `你的目录/business_edit.php' at 1126 (100%) [Making data connection...]

    下载整个站点

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> mirror /

    [0] mirror / &

    下载整个目录

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> mirror 你的目录/

    [1] mirror 你的目录/ &

    断点续传整个目录

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> mget -c 你的目录/*

    [0] mget -c 你的目录/* &

    `你的目录/info_class.php' at 0 (0%) [Waiting for response...]

    lftp查找文件命令

    ls *.php 查找当前目录的php文件

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> ls *.php

    total 16

    -rw-------   1 www      www          2037 Nov 24 07:50 cai.php

    -rw-r--r--   1 www      www          8473 Oct 25 07:52 html.php

    ls ./admin/ 查找admin目录下的文件

    代码如下

    lftp webmaster@phpyuandi.com@115.47.192.146:/> ls ./admin/

    total 444

    -rw-r--r--   1 www      www           611 Aug  2 08:46 application.php

    -rw-r--r--   1 www      www           391 Aug  2 08:47 application_info.php

    -rw-r--r--   1 www      www           858 Aug  6 08:00 banner.php

    -rw-r--r--   1 www      www           650 Aug  2 08:45 banner_add.php

    -rw-r--r--   1 www      www          1026 Aug  2 08:45 banner_edit.php

    -rw-r--r--   1 www      www          1434 Aug  6 08:03 business.php

    -rw-r--r--   1 www      www           788 Aug  3 10:01 business_add.php

    -rw-r--r--   1 www      www           277 Aug  3 10:01 business_bigclass_add.php

    -rw-r--r--   1 www      www           473 Aug  3 10:00 business_bigclass_edit.php

    -rw-r--r--   1 www      www           484 Aug  3 10:00 business_class.php

    -rw-r--r--   1 www      www           234 Aug  3 09:59 business_class_del.php

    -rw-r--r--   1 www      www          1126 Aug  3 09:59 business_edit.php

    -rw-r--r--   1 www      www           759 Aug  3 09:58 business_smallclass_add.php

    -rw-r--r--   1 www      www           871 Aug  3 10:10 business_smallclass_edit.php

    -rw-r--r--   1 www      www         44402 Aug 10  2011 cai.php

    -rw-r--r--   1 www      www           930 Nov 11 07:59 check_login.php

    drwxr-xr-x   2 www      www          4096 Aug 12 10:09 css

    ls ./admin/year*.php 查找admin目录下包含year的php文件

    lftp webmaster@phpyuandi.com@115.47.192.146:/> ls ./admin/year*.php

    total 12

    -rw-r--r--   1 www      www           651 Aug  6 07:57 year.php

    -rw-r--r--   1 www      www           401 Jul 28 09:29 year_add.php

    -rw-r--r--   1 www      www           531 Aug  4  2011 year_edit.php

    常用命令

    在终端运行

    man lftp

    或登录ftp后输入

    help

    就可以看到命令列表

    下面我们看一下lftp常用的命令:

    ls

    显示远端文件列表(!ls 显示本地文件列表)。

    cd

    切换远端目录(lcd 切换本地目录)。

    get

    下载远端文件。

    mget

    下载远端文件(可以用通配符也就是 *)。

    pget

    使用多个线程来下载远端文件, 预设为五个。

    mirror

    下载/上传(mirror -R)/同步 整个目录。

    put

    上传文件。

    mput

    上传多个文件(支持通配符)。

    mv

    移动远端文件(远端文件改名)。

    rm

    删除远端文件。

    mrm

    删除多个远端文件(支持通配符)。

    mkdir

    建立远端目录。

    rmdir

    删除远端目录。

    pwd

    显示目前远端所在目录(lpwd 显示本地目录)。

    du

    计算远端目录的大小

    !

    执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)

    lcd

    切换本地目录

    lpwd

    显示本地目录

    alias

    定义别名

    bookmark

    设定书签。

    exit

    退出ftp

    快捷书签

    展开全文
  • linux shell 中的 lftp

    千次阅读 2014-02-14 12:51:59
    刚进入linux殿堂的人似乎总会尝试寻找一个类似FlashFXP或Leapftp的图形界面的ftp客户端,可是尝试过的朋友应该都清楚:不管是自由的,还是商业的ftp客户端,用来用去总还是不如lftp来得方便。没有图形界面,对于初学...

    前言

    刚进入linux殿堂的人似乎总会尝试寻找一个类似FlashFXP或Leapftp的图形界面的ftp客户端,可是尝试过的朋友应该都清楚:不管是自由的,还是商业的ftp客户端,用来用去总还是不如lftp来得方便。没有图形界面,对于初学者来说,确实有一点痛苦,可是只要我们花一点时间,掌握几个简单的命令,就能迅速体会到lftp的强大。

    [编辑]~/.lftprc

    在用lftp访问国内一些ftp服务器时,往往看到的中文是乱码

    ^_^不用慌,这是由于服务器和本地编码不一致造成的。我们只要在主目录下新建一个文件~/.lftprc或者~/.lftp/rc

    并在其中加入以下内容:

    debug 3
    set ftp:charset GBK
    set file:charset UTF-8
    #set ftp:passtive-mode no
    #alias utf8 " set ftp:charset UTF-8"
    #alias gbk " set ftp:charset GBK"
    

    [编辑]登录ftp服务器

    言归正传,我们先来看看怎么登录ftp服务器

    上面的几种方式都能正常工作,不过密码都是明文,这样好像不太安全哦。没关系

    lftp user@site:port
    

    系统会提示输入password,密码就回显为******了

    不过每次都输入这么多,真的好麻烦哦。 如果有类似leapftp的站点管理器就好了,其实lftp早就给我们想好了: 这就是bookmark。後面我们将会看到。

    [编辑]常用命令

    在终端运行

    man lftp
    
    

    或登录ftp后输入

    help
    
    

    就可以看到命令列表

    下面我们看一下lftp常用的命令:


    ls 
    显示远端文件列表(!ls 显示本地文件列表)。
    cd 
    切换远端目录(lcd 切换本地目录)。
    get 
    下载远端文件。
    mget 
    下载远端文件(可以用通配符也就是 *)。
    pget 
    使用多个线程来下载远端文件, 预设为五个。
    mirror 
    下载/上传(mirror -R)/同步 整个目录。
    put 
    上传文件。
    mput 
    上传多个文件(支持通配符)。
    mv 
    移动远端文件(远端文件改名)。
    rm 
    删除远端文件。
    参数-r,递归删除文件夹
    mrm 
    删除多个远端文件(支持通配符)。
    mkdir 
    建立远端目录。
    rmdir 
    删除远端目录。
    pwd 
    显示目前远端所在目录(lpwd 显示本地目录)。
    du 
    计算远端目录的大小
    set net:limit-rate 10000,10000
    限制上传下载各为10KB/s
    set ftp:charset gbk 
    设置远程ftp site用gbk编码
    执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
    lcd 
    切换本地目录
    lpwd 
    显示本地目录
    alias 
    定义别名
    bookmark 
    设定书签。
    exit 
    退出ftp

    [编辑]快捷书签

    补充作者:aBiNg

    ftp中的bookmark命令,是将配置写到~/.lftp/bookmarks文件中;我们可以直接修改此文件,快速登陆ftp服务器。

    例如添加一行:

    echo 'uftp ftp://user:passwd@ftp.ubuntu.org.cn' >> ~/.lftp/bookmarks
    

    lftp的bookmarks文件书写格式为:

    别名<空格>ftp://user:passwd@site:port
    

    以後要登陆ubuntu-cn的ftp,只要执行:

    lftp uftp
    

    [编辑]其它客户端

    kftpgrabber
    KDE下ftp客户端,支持编码选择。对中文支持较好
    gftp
    gnome下ftp客户端,目前对中文支持尚不太好,受抱怨颇多。
    fireftp
    firefox的ftp客户端插件,新版对中文支持较好。
    FileZilla
    对中文支持较好
    CrossFTP
    基于Java的稳定ftp客户端和同步工具。优良的中文/Unicode支持。
    展开全文
  • 最近编程中用到sftp上传文件,且需要用crontab预设定时上传事件。而sftp不同于ftp,没有提供选项如 -i 可以将密码直接编码进程序。使用sftp指令,会自动请求用户输入密码。 lftp方式 LFTP是一款非常著名的字符...
  • linux中使用lftp上传下载文件

    千次阅读 2016-04-17 13:49:00
    lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧。 lftp连接的几种方法,最常用的是lftp name@site,这样可以不用明文输入密码...
  • 在没有lftp时利用sftp 账号密码登录,自动上传下载.txt文件的shell脚本 #!/bin/sh #本地文件夹 localdir=/data/test_mei/bigdataweek/txt #IP1需要下载文件的目录 localdir_get=/data01/BIGDATA/CAPA_SYS/BIGDATA_...
  • lftp

    2016-09-27 15:53:00
    linux安装FTP工具 lftp及使用教程 来源:网络发布时间:2013-05-24 15:21字体:【大中小】点击2510次 linux下可以直接通过FTP命令进行ftp上传下载,不过貌似不好用. linux下有什么好的FTP客户端工具用于上传呢...
  • 这个文件的名字为lftp.sh 是个shell脚本文件, 需要 是sh lftp.sh 来运行的 . 其次就是文件不能执行的问题: 文件权限需要用 chmod 777 脚本文件.sh 获取权限 +++++++++++++++++++++++++++今天先写到这, 明天再写...
  • 解答:之前本人使用的上传方法是ftp无法做到,之后使用lftp可以保证原上传文件的时间戳不改变但是再一次出现问题 问题:上传到ftp服务器上的文件与本地文件存在几个小时的时间差异 谷歌搜索给出的答案:时区问题,...
  • lftp连接ftp在脚本中可以 lftp -c "open username:password@host:port; ls /Friso/20180822/click/mobile/SUCCESS | wc -l" lftpusename:password@host:port -e"ls/Friso/20180823;bye" lftp连接sft...
  • linux下lftp自动上传文件

    千次阅读 2019-01-07 17:22:23
    lftp -u $ftp_username,$ftp_password sftp://$ftp_server cd $ftp_base mkdir $1 cd $1 mput /home/oracle//$2/* bye EOF } [ ! -f $ftp_log ] && touch ftp_log ls -ltr /home/oracle//$v_date3 &1>$...
  • lftp 是Linux系统上在本地机和远程主机之间的进行上传和下载文件的工具,支持协议ftp, sftp, http, https, hftp, fish等。非常强大好用,有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它...
  • lftp 用法

    千次阅读 2010-02-10 17:09:00
    Lftp用法Lnu x 技术 2009-04-09 20:48:56 阅读864 评论0 字号:大中小 (转)lftp使用介绍 lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的...
  • vsftpd lftp

    千次阅读 2011-11-03 17:11:24
    今天在linux 上建立一个...要安装 vsftpd ,lftp 只是一个登入工具,不过确实 这个登入工具很好用,主要是符合shell 命令的习惯 。 //////下面转自 : http://forum.ubuntu.org.cn/viewtopic.php?t=59102 首先,
  • lftp命令

    2018-10-29 15:34:00
    llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。 lftp命令是一款优秀的文件客户端程序,...
  • lftp使用

    万次阅读 2017-04-20 11:04:33
    lftp的功能比较强大,相比原来用ftp,方便了很多。 1、登陆: lftp ftp://yourname@site pwd:***** 或 open ftp://yourname@site   2、基本操作(转) lftp使用介绍 lftp 是一个功能强大...
  • lftp常用命令

    千次阅读 2018-08-02 16:38:50
    1、$ sudo apt-get install lftp //安装lftp 2、$ lftp //进入lftp 2、lftp :~&gt; lftp 192.168.1.124 //(或直接输入ftp的网址)登录远程ftp 3、lftp 192.168.1.124:~&gt; user root //输入ftp用户名...
  • 强大的lftp

    千次阅读 2008-11-17 12:19:00
    原贴:http://www.php-oa.com/2008/04/17/lft.html...没想到lftp也这么强大lftp很象shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。这个可是超级好用的一点哦. 它还有书签、排队、镜像
  • lftp使用详解

    万次阅读 2013-10-05 21:46:23
    刚进入linux殿堂的lftp的我,决定好好将次命令的资料整理如下,以便学习...... 强大的lftp介绍 lftp 是一个功能强大的下载工具,它支持访问...llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,334
精华内容 533
关键字:

lftp上传shell