LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2164|回复: 4

自动ftp脚本python实现

[复制链接]
发表于 2004-6-7 22:22:00 | 显示全部楼层 |阅读模式
#!/usr/bin/bash python
import os
home='/home/jason/bbsback'                    
file=open('/home/jason/.gftp/gftprc','r+') #这个是gftp的配置文件
passive='passive_transfer=0\n'         #我的ftp要上去必须把这个关闭。
line=file.readlines()            #这个是把文件的所有内容付值给line
downfile='gftp-text -d user:pass@ftp://file'
if not os.path.isdir(home):               #判断目录是否存在,不在就建立
    os.mkdir(home)
if not passive in line:                        #判断是否关闭passive参数
    file.write(passive)                  #如果没有关闭,就加一句
    file.close()
if os.getcwd()==home:                    #判断是否在bbsback目录
    os.system(downfile)                  #下载指定文件
    os.rename('file','file_')  #改名,本来想改成原文件名+日期,现在不知道python的处理日期方法是什么。



现在看来,用python完成shell脚本任务比较麻烦,但我觉的python的语法更清晰一些。下一步就是判断下载文件的数量,超过5个就把最先下载的2个删除。待续。
发表于 2004-6-8 11:34:24 | 显示全部楼层
没这个必要,这类粘合剂的工作还是留给bash来做吧。
否则,越俎代庖之嫌也。
 楼主| 发表于 2004-6-8 12:10:40 | 显示全部楼层
python看来是不适合这种工作阿。
 楼主| 发表于 2004-6-10 15:32:56 | 显示全部楼层
呵呵,最终的程序完成了。

#!/usr/bin/bash python
import os,time
home='/home/jason/shell'
file=open('/home/jason/.gftp/gftprc','r+')
passive='passive_transfer=0\n'
filename=time.strftime("%y-%m-%d",time.localtime())
line=file.readlines()
downfile='gftp-text -d nbme:password@ftp://index.htm'
if not os.path.isdir(home):
    os.mkdir(home)
if not passive in line:
    file.write(passive)
    file.close()
if os.getcwd()==home:
    os.system(downfile)
    os.rename('index.htm','index.htm_'+filename)

每天下载的文件改名位文件名称+当天日期。
 楼主| 发表于 2004-6-11 15:37:47 | 显示全部楼层
最终python 代码。
#!/usr/bin/python
import os,time,ftplib
home='/home/jason/bbsback'
data=time.strftime('%y-%m-%d')
if not os.path.isdir(home):
    os.mkdir(home)
if os.getcwd()==home:
    ftp=ftplib.FTP('ftp.com','user','password')
    ftp.set_pasv(0)
    ftp.cwd('/www/forum/Data')
    ftp.retrbinary('RETR nbfan.asp',open('nbfan.asp-'+data,'wb').write)
    ftp.quit()
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表