首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过FTP (perl)获得远程服务器的最后修改时间和时区

问如何通过FTP (perl)获得远程服务器的最后修改时间和时区
EN

Stack Overflow用户
提问于 2013-09-22 06:15:59
回答 2查看 2K关注 0票数 0

我正在编写一个perl脚本,它可以使用FTP将本地目录与远程目录同步。它检查每个文件的最后修改日期,并将其与一个远程文件进行比较。我使用以下代码通过FTP获得最后修改时间。

代码语言:javascript
复制
 my $f = Net::FTP->new($config->{'host'}, Passive => 1, Debug => 0) || die "Couldn't ftp to $config->{'host'}: $@";
 $f->mdtm($file);

如果本地机器和远程机器有相同的时间和时区,我需要一个解决办法,如果他们不是!

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-22 08:11:48

据我所知,仅使用FTP命令不存在了解ftp服务器时区设置的方法.无论如何,如果您有写权限,您可以尝试在远程FTP服务器上创建一个文件,然后在它上执行一个"ls“来查看日期/时间戳,使用新创建的文件的时间戳,您可以计算本地时区和服务器时区之间的差异。

代码语言:javascript
复制
$f->touch('test.time') or die $f->message; #Creates new zero byte file
$f->mdtm('test.time'); #Now you should have the local time of the FTP Server
#Now you can compare with your local time and find the difference ...

在尝试使用touch命令创建测试文件之前,请确保测试文件不存在。

票数 1
EN

Stack Overflow用户

发布于 2013-09-24 07:10:39

从(stat file9)获得的修改时间不取决于配置了哪个时区服务器吗?

在两个具有不同时区的服务器中,我几乎同时触摸了一个示例文件。得到的改性时间非常相似。只有最后4位数字是不同的。

代码语言:javascript
复制
Server 1
--------
root@- [~/ftp_kasi]# touch file
root@- [~/ftp_kasi]# perl mdtime.pl 
1380005862
root@- [~/ftp_kasi]# date
Tue Sep 24 02:59:19 EDT 2013
root@- [~/ftp_kasi]#

Server 2
--------
root@ffVM32 kasi]# touch file
[root@ffVM32 kasi]# perl mdtime.pl 
1380006066
[root@ffVM32 kasi]# date
Tue Sep 24 12:38:45 IST 2013
[root@ffVM32 kasi]# 

代码语言:javascript
复制
 [root@ffVM32 kasi]# cat mdtime.pl 
#!/usr/local/cpanel/3rdparty/bin/perl

$file = "file";
#open my $fh,'<',$file or  die "Could not open file : $!\n";
#my $mdtime = (stat($fh))[9];

open (FILE, "file");
my $mdtime = (stat(FILE))[9];

print $mdtime."\n";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18940962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档