当前位置: 技术问答>linux和unix
linux下如何用脚本实现定时取其他服务器的以日期命名的文件阿,大家帮忙阿,我请大家喝酒:)
来源: 互联网 发布时间:2014-12-15
本文导语: 当然了,用手动好实现只要ftp到远端服务器,然后再用get或mget就可以了,我设计了个脚本如下:#cat ftpauto.sh #!/bin/sh ftp -n user username passwd binary passive prompt off lcd /localpath mput *.* close bye ! 然后加入到crontab里就可以...
当然了,用手动好实现只要ftp到远端服务器,然后再用get或mget就可以了,我设计了个脚本如下:#cat ftpauto.sh
#!/bin/sh
ftp -n user username passwd
binary
passive
prompt off
lcd /localpath
mput *.*
close
bye
!
然后加入到crontab里就可以定期执行了,现在的问题是对方的服务器上的文件每天更新3次,早上、中午、和晚上名字分别为(比如9月5日早上的)20020905_1 中午的是20020905_2依此类推,我现在只想在中午时取20020905_2而不再取20020905_1及以前的,需要怎么编写脚本,请各位大虾指点哦!
#!/bin/sh
ftp -n user username passwd
binary
passive
prompt off
lcd /localpath
mput *.*
close
bye
!
然后加入到crontab里就可以定期执行了,现在的问题是对方的服务器上的文件每天更新3次,早上、中午、和晚上名字分别为(比如9月5日早上的)20020905_1 中午的是20020905_2依此类推,我现在只想在中午时取20020905_2而不再取20020905_1及以前的,需要怎么编写脚本,请各位大虾指点哦!
|
filename的处理:两步走
1.如果是定期去服务器上取,那么每次取哪个文件是固定的,也就是说
20020905_n中的n是确定的,可将n作为参数输入
2.在内部起名:
filename = `date +%Y%m%d`_$1
运行时输入ftpauto.sh 1则文件名为20020905_1
1.如果是定期去服务器上取,那么每次取哪个文件是固定的,也就是说
20020905_n中的n是确定的,可将n作为参数输入
2.在内部起名:
filename = `date +%Y%m%d`_$1
运行时输入ftpauto.sh 1则文件名为20020905_1
|
你可以在脚本里检查一下时间,根据时间再生成文件名,然后指定文件名取。
|
用 wget 或 rsync 取代 ftp client 作远程存取.