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
ftp_get仅是下载,如果本地有内容你不想覆盖的话那就按照时间戳变更下载后的文件名,如果要对文件进行操作
PHP写入文件需要:打开文件fopen()、写入数据fwrite()和关闭文件
fclose()
$fp=fopen("../cnbruce.txt",'w')
r
只读——读模式,打开文件,从文件头开始读
r+
可读可写方式打开文件,从文件头开始读写
w
只写——写方式打开文件,同时把该文件内容清空,把文件指针指向文件开始处。如果该文件已经存在,将删除文件已有内容;如果该文件不存在,则建立该文件
w+
可读可写方式打开文件,同时把该文件内容清空,把文件指针指向文件开始处。如果该文件不存在,则建立该文件
a
追加
以只写方式打开文件,把文件指针指向文件末尾处。如果该文件不存在,则建立该文件
a+
追加
以可读可写方式打开文件,把文件指针指向文件末尾处。如果该文件不存在,则建立该文件
b
二进制
用于于其他模式进行连接。建议使用该选项,以获得更大程度的可移植性
注意,如果fopen()函数调用失败,函数将返回false。否则返回指针数据。所以一般在打开了文件后\读写文件前需要检测下文件是否存在。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)