用自动wget或ftp提高工作效率

发布于 2022-10-02 17:46:39 字数 4999 浏览 17 评论 0

2004-06学会用wget工具来取FTP站点的文件.
       
        wget ftp://username:password@ip_address/dir/file_name
       
        比自动FTP的SHELL脚本的方法方便多了.
       
        例如获取FTP服务器上文件名是昨天日期的文件,如filename_20040608_001,filename_20040608_002,......
       
        #!/bin/sh
        rq=`date --date '1 days ago' "+%Y%m%d"`
        wget -q ftp://username:password@ip_address/filename_$rq*
       
        有的时候,FTP站点用wget可以进行目录浏览,也可以下载固定文件名的文件,
        却不能把文件名是昨天日期的文件取下来时.
       
        我想了一个方法:
       
        #!/bin/sh
        rq=`date --date '1 days ago' "+%Y%m%d"`
        wget -nr ftp://username:password@ip_address/filename_$rq*
        grep filename_$rq .listing >; 1.txt
        cat 1.txt|while read LINE
        do
                file_name=`echo $LINE|awk '{print $9}'`
                wget -q ftp://username:password@ip_address/$file_name
        done
       
        原理是在目录浏览.listing文件里查找到昨天生成的文件名到临时文件1.txt里
       
        -rw-r--r--    1 fengyu   fengyu     106880 Jun  9 11:44 file_name_20040608001
        -rw-r--r--    1 fengyu   fengyu     161760 Jun  9 11:44 file_name_20040608002
        ...... ...... ......
       
        从头到尾一行行读这个1.txt文件,取它的第9段,也就是固定的文件名,再传递给wget工具.

        -------------------------------------------------------------------------------------
               
        2003-01时候看从www.china-pub.com下载的书《LINUX与UNIX Shell编程指南》,不经意的发现有一个写成
       
    自动FTP的SHELL脚本,结合数据库的系统管理,它有很多用途,可以提高你的工作效率。
   
            用途1: 把数据库的逻辑备份或者其它关键的文件传到另一个地区,实现远端备份。
           
            ( 例如:从北京机房的传到上海机房。)
                   
            auto_ftp.sh 内容如下:
           
        #!/usr/bin/sh
        ftp -i -n 192.168.0.253 <<FTPIT
        user username password
        bin
        put /oracle_backup/exp/user1.dmp.Z /bk/oracle_bak/dmp/user1.dmp.Z
        put /oracle_backup/exp/user2.dmp.Z /bk/oracle_bak/dmp/user2.dmp.Z
        quit
        FTPIT

        你可以根据实际情况修改斜体字的内容:
            目标服务器的IP地址,ftp用户名和密码,put或者get传递方式,源目录文件和目标目录文件。
            
        用途2: 使远端节点间有规律的数据库导出并导入的工作自动进行。
       
            按时间顺序在源服务器执行exp_tables.sh,然后auto_ftp_tables.sh。
           
            接着在目标服务器执行drop_tables.sh,最后imp_tables.sh。
           
            如何设置时间表并自动执行,请参看 UNIX下让ORACLE定时执行*.sql文件。
           
            用途3: 把自动生成的压缩格式的报表文件传到Linux邮件服务器,由机器自动给相关人员发EMAIL。
           
            auto_mail.sh 内容如下:
           
            $(cat mail.txt; uuencode report1.txt report2.txt ) | mail maggiefengyu@mail.china.com
           
            说明:mail.txt为邮件正文的内容,report1.txt.Z report2.txt.Z为邮件的两个附件,
           
                  maggiefengyu@mail.china.com为邮件的收件人。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文