LINUX终端-Tar:找不到文件。跳过文件?

LINUX终端-Tar:找不到文件。跳过文件?,linux,bash,tar,minecraft,region,Linux,Bash,Tar,Minecraft,Region,我有两个问题,都与linux终端中的Tar有关。为了让你了解我所看到的,我在下面贴了一个指向我的桌面图片的链接。 正如您在左上角的终端上看到的,有三条消息: tar: ./Frisnuk/Frisnuk/region/r.0.0.mca: file changed as we read it tar: ./Frisnuk/server.log: file changed as we read it ls: cannot access home/clucky/MinecraftServers/.

我有两个问题,都与linux终端中的Tar有关。为了让你了解我所看到的,我在下面贴了一个指向我的桌面图片的链接。

正如您在左上角的终端上看到的,有三条消息:

tar: ./Frisnuk/Frisnuk/region/r.0.0.mca: file changed as we read it
tar: ./Frisnuk/server.log: file changed as we read it
ls: cannot access home/clucky/MinecraftServers/.backups/Backup-08-January-2013-15:31.tar.gz: No such file or directory
在前两条消息中,它表示无法读取文件,因为文件已更改。文件更改是因为有一台服务器在运行时修改了内容,这对整个备份来说不应该是问题,因为它们是来自Minecraft服务器的区域文件,因此可以单独使用这些文件。我主要关心的是,是跳过文件,还是重做?如果它跳过文件,这可能是备份中的一个主要漏洞,因为具有恶意意图的玩家可能会在其备份时故意修改该区域,从而阻止其备份。因此,如果它跳过该文件,我如何在不必重做整个备份的情况下重复该文件

在第三条消息中,它声明它无法访问home/clucky/MinecraftServers/.backups/Backup-08-一月-2013-15:31.tar.gz文件,但是,正如您在下面的窗口中清楚地看到的,该文件确实存在。我觉得这很奇怪,特别是因为,如果您查看脚本,文件大小检查会在脚本末尾进行,在备份发生很久之后

下面我已经发布了脚本,以便任何试图帮助我的人都可以轻松修改它:

timedate=`date '+%d-%B-%Y-%H:%M'`
echo "-------------- $timedate --------------" >> /home/clucky/MinecraftServers/backup.log
echo "[`date '+%H:%M'`] Starting Minecraft Backup" >> /home/clucky/MinecraftServers/backup.log
nice --adjustment=19 tar -zcpf /home/clucky/MinecraftServers/.backups/Backup-$timedate.tar.gz \
    --directory /home/clucky/MinecraftServers/ \
    --exclude=SkyBlockkit \
    --exclude=Tekkit \
    --exclude=Vanilla \
    --exclude=test \
    --exclude=Zflocco_LP \
    --exclude=Mortuus/plugins/dynmap/web --exclude=Mortuus/plugins/AutoSaveWorld/backups --exclude Mortuus/CraftBukkitVersion --exclude=Mortuus/orebfuscator_cache --exclude=Mortuus/plugins/#Removed --exclude=Mortuus/server.log \
    --exclude=Frisnuk/plugins/dynmap/web --exclude=Frisnuk/plugins/AutoSaveWorld/backups --exclude Frisnuk/CraftBukkitVersion --exclude=Frisnuk/orebfuscator_cache --exclude=Frisnuk/plugins/#Removed --exclude=Frisnuk/plugins/#AwaitingUpdate--exclude=Frisnuk/server.log \
    --exclude=dailybackup.log \
    --exclude=.backups \
    --exclude=backup.log \
    --exclude=backups.log \
    --exclude=backupscript.sh \
    --exclude=dailybackup.sh .
echo "[`date '+%H:%M'`] Finishing Minecraft Backup" >> /home/clucky/MinecraftServers/backup.log
#Purge files 3 days old
echo "[`date '+%H:%M'`] Purging Old Backups" >> /home/clucky/MinecraftServers/backup.log
find /home/clucky/MinecraftServers/.backups* -mmin +4320 -exec rm {} \;
echo "[`date '+%H:%M'`] Purging Complete" >> /home/clucky/MinecraftServers/backup.log
#Read back file size
filesize=$(ls -lah home/clucky/MinecraftServers/.backups/Backup-$timedate.tar.gz | awk '{ print $5}')
echo "     Total Compression Size: $filesize\n" >> /home/clucky/MinecraftServers/backup.log

感谢您的帮助,如果您需要更多信息,请询问。

我想您错过了此行中的“/”(
主页vs/home
):

filesize=$(ls -lah home/clucky/MinecraftServers/.backups/Backup-$timedate.tar.gz | awk '{ print $5}')
难道不是:

filesize=$(ls -lah /home/clucky/MinecraftServers/.backups/Backup-$timedate.tar.gz | awk '{ print $5}')

我想你错过了这一行的“/”(
home vs/home
):

filesize=$(ls -lah home/clucky/MinecraftServers/.backups/Backup-$timedate.tar.gz | awk '{ print $5}')
难道不是:

filesize=$(ls -lah /home/clucky/MinecraftServers/.backups/Backup-$timedate.tar.gz | awk '{ print $5}')

如果磁盘空间不是问题,您可以执行
cp-ap/home/MinecraftServers/-sometemp dir
,然后从那里进行备份


您复制的文件在备份期间将保持静态,因为没有进程写入它们。这是给实时数据涂焦油时的常见做法。

如果磁盘空间不是问题,您可以执行
cp-ap/home/MinecraftServers/-sometemp dir
,然后从那里进行备份


您复制的文件在备份期间将保持静态,因为没有进程写入它们。这是给实时数据加焦油时的常见做法。

这与Linux或终端无关。我修改了这个问题来说明这一点。这与Linux或终端无关。我已经修改了这个问题来说明这一点。这确实有效!谢谢现在进入问题的第一部分,关于可能的跳过,您知道这方面的情况吗?您的意思是,如果文件在tar期间更改而被跳过?您可以手动验证tar-achive的内容。是的,tar中确实存在它,我刚刚检查过。但是我想知道它是否损坏了…我的猜测是,这只是一个猜测,当tar运行时,该文件以当前状态结束在存档中。好的,谢谢你的帮助。我想我肯定会知道是否有人曾经抱怨过,备份会产生块错误。(消息中包含一些地雷工艺术语:悲伤=破坏另一个玩家的财产;区块错误=地图的16x16米部分重置为默认生成的地形或服务器因此无法加载)确实有效!谢谢现在进入问题的第一部分,关于可能的跳过,您知道这方面的情况吗?您的意思是,如果文件在tar期间更改而被跳过?您可以手动验证tar-achive的内容。是的,tar中确实存在它,我刚刚检查过。但是我想知道它是否损坏了…我的猜测是,这只是一个猜测,当tar运行时,该文件以当前状态结束在存档中。好的,谢谢你的帮助。我想我肯定会知道是否有人曾经抱怨过,备份会产生块错误。(消息中包含一些地雷工艺术语:悲伤=破坏另一玩家的财产;区块错误=地图的16x16米部分重置为默认生成的地形,或者服务器因此无法加载)