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
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)