Linux下 ftp命令 文件时间戳会变吗

Linux下 ftp命令 文件时间戳会变吗,第1张

问题现象:

ftp到一台linux系统中,查看一个文件下的文件清单,发现和文件的实际创建时间(以root用户登录查看的时间)不一致,大约相差8个小时左右。

问题处理方法:

Linux 下的时区是通过建立从/etc/localtime 到 /usr/share/zoneinfo 目录下与您所在时区相符的文件的符号链结实现的。例如,由于我在中国的北京,/etc/localtime就是到/usr/share/zoneinfo/Asia/Shanghai的符号链结。要建立这个链结,运行:

ln -sf /usr/share/zoneinfo/yourzone /etc/localtime

替换yourzone 为形如Asia的文件。看看/usr/share/zoneinfo目录都有什么时区。

我这里运行的是:

ln -sf /usr/share/zoneinfo/Asia /etc/localtime

这里假设/usr/share/zoneinfo 是到/etc/localtime 的链结的前提是Redhat Linux

在旧版本的系统里,您会发现使用/usr/lib/zoneinfo而不是/usr/share/zoneinfo。参考后面“一些应用程序中时间错误”。

#!/bin/bash

#设置日志文件,前提建好了/backup/log目录

LogFile=/backup/log/`date +"%Y-%m"`.log

#备份源目录

SourceDir=/cvs

#备份目标

BakDir=/backup

#保存20天过期自动删除

RetainDay=20

#备份的内容可以写进project.lst,如cvs目录下有a,b,c三个目录,project.lst填写多少就备份多少,下面是备份的

#具体脚本,其核心是tar打包,并把重要的内容记录到日志文件里

ProjectLst=/backup/project.lst

##################################################

DATE=`date +"%Y-%m-%d"`

echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >$LogFile

echo "--------------------------------------------------" >>$LogFile

cd $BakDir

PROJECTLIST=`cat $ProjectLst`

for Project in $PROJECTLIST

do

ProjectData=$SourceDir/$Project

DestDir=$BakDir/$Project

PackFile=$DATE.$Project.tgz

if [ -f $BakDir/$PackFile ]

then

echo "backup file have exist !" >>$LogFile

else

cp -RHpf $ProjectData $DestDir >/dev/null

tar -zcvf $PackFile $Project >/dev/null

echo "backup $Project done into $PackFile" >>$LogFile

rm -rf $Project

fi

done

echo "--------------------------------------------------" >>$LogFile

echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

echo " " >>$LogFile

##################################################

#下面的内容就是把刚才备份的内容传到服务器上,前提是你有一个可以访问到底FTP服务器

#put backup to ftp server

HOST=192.168.110.111

FTP_USERNAME=ftpuser

FTP_PASSWORD=123456

cd $BakDir

echo "start open ftp serverat $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

echo "--------------------------------------------------" >>$LogFile

/usr/bin/ftp -in <open $HOST

user $FTP_USERNAME $FTP_PASSWORD

put $DATE.$Project.tgz

bye

EOF

echo "put ftp end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

#最后上传完毕后再查看本地备份大于20天的自动删除,这样就可以实现本地异地双备份

find $Bakdir -type f -mtime +$RetainDay -name "*.$Project.tgz" -exec rm {} \>/dev/null

exit 0

#最后我们还可用crontab做个周期性计划,比如每周一次全备份

#59 23 * * 6 /home/backup.sh


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/808572.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-29
下一篇2023-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存