0

2 つの質問があります。どちらも Linux ターミナルの Tar に関するものです。私が見ているものを理解していただくために、私のデスクトップの画像へのリンクを以下に掲載しました。 http://worldofclucky.net/errors/ServerLag/desktop.png Linux Ubuntu 12.04 デスクトップ http://wocl.net/errors/ServerLag/desktop.png 1

端末の左上隅に表示されるように、次の 3 つのメッセージがあります。

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

最初の 2 つのメッセージでは、ファイルが変更されたため、ファイルを読み取れないことが示されています。実行中にコンテンツを変更するサーバーがあるため、ファイルが変更されました。これらは Minecraft サーバーの領域ファイルであるため、ファイルは互いに個別に使用できるため、全体的なバックアップには問題ありません。私の主な懸念は、ファイルをスキップしているのか、それともやり直しているのかということです。ファイルをスキップしている場合、これはバックアップの主要な抜け穴である可能性があります。これは、悪意のあるプレイヤーがバックアップ中にリージョンを意図的に変更し、バックアップを妨げる可能性があるためです。ファイルをスキップしている場合、バックアップ全体をやり直すことなく、どうすればそれを繰り返すことができますか?

3 番目のメッセージでは、ファイルhome/clucky/MinecraftServers/.backups/Backup-08-January-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

ご支援いただきありがとうございます。さらに情報が必要な場合は、お問い合わせください。

4

2 に答える 2

3

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}')
于 2013-01-08T20:56:34.427 に答える
1

ディスク容量が問題にならない場合は、 を実行して、cp -ap /home/MinecraftServers /-sometemp-dirそこからバックアップを作成できます。

コピーされたファイルは、バックアップ中に静的なままになります。これは、プロセスがファイルに書き込みを行っていないためです。これは、ライブ データをタールアップする場合の一般的な方法です。

于 2016-04-27T15:20:23.907 に答える