Tar erreur: Des expressions du FOLKLORE dans les archives
Je goudron un répertoire plein d'images JPEG:
tar cvfz myarchive.tar.gz mydirectory
Quand j'ai décompresser l'archive:
tar xvfz myarchive.tar.gz
J'obtiens une erreur:
tar: Unexpected EOF in archive
À la recherche, à la sortie, il échoue au milieu de l'un particulier de l'image JPEG.
Ce que je fais mal?
Avez-vous manqué de l'espace lors de la création de l'archive?
viens de recevoir endommagé. il se passe. le goudron de nouveau
viens de recevoir endommagé. il se passe. le goudron de nouveau
OriginalL'auteur | 2009-08-25
Vous devez vous connecter pour publier un commentaire.
Intéressant. J'ai quelques questions qui peuvent signaler le problème.
1/Êtes-vous décompacter sur la même plate-forme que vous êtes goudronnage? Ils peuvent être de différentes versions de
tar
(par exemple, GNU et de la vieille-unix)? Si ils sont différents, vous pouvez décompresser sur la même case que vous goudronnée sur?2/Ce qui se passe quand vous simplement gunzip myarchive.tar.gz? Cela fonctionne? Peut-être que votre fichier est corrompu/tronquée. Je suis en supposant que vous remarquerez si la compression généré des erreurs, oui?
Basé sur le GNU tar source, il n'imprimez ce message que si
find_next_block()
retourne 0 prématurément qui est habituellement causée par tronquée archive.Ok, supprimer la délinquance JPEG temporairement et voir ce qui se passe. Cela vous permettra de savoir si c'est spécifique JPEG ou de goudron. Aussi essayer sans zip option.
Ah, vous me mettre sur la bonne voie: l'archive tar est tronqué. Je ne vois pas d'erreurs dans mon syslog (l'archive est créée par un cron job), mais quelque chose doit aller mal. Il ya beaucoup d'espace sur le disque (quand je créer l'archive "à la main", il n'est pas tronqué)... je vais creuser plus profond maintenant, merci pour vos réponses.
Quelle est la taille du fichier tar? Vous avez peut-être frapper votre ulimit limite de taille de fichier. En outre, vos tâches cron doit toujours envoyer stdout/stderr /tmp/un-fichier-ou-autres (nettoyé avec encore une autre tâche cron) à l'aide de débogage. Peut-être changer votre script à exécuter ulimit comme de sa première commande, puis modifiez la tâche cron pour la capture de sortie (par exemple, dans votre crontab, changer "/mypath/myprog" à "/mypath/myprog >/tmp/myprog.2>,&1".
ulimit-n (#fichiers) ne devrait pas d'importance, car il est peu probable que le goudron serait de les garder tous ouverts à la fois de toute façon. Je pensais plus à ulimit (ulimit-f est la valeur par défaut) ce qui montre la limite maximale de fichier taille. Je voudrais aussi être à l'aise avec un Heisenbug donc, je suis prêt à travailler pour l'obtenir triés (il est difficile d'imaginer que l'ajout de la journalisation pour le script aurait une incidence sur la commande tar à tous!) mais, si vous êtes heureux de le laisser aller, c'est bien trop. Laissez-moi savoir. Des acclamations.
OriginalL'auteur paxdiablo
Peut-être vous avez ftped le fichier en mode ascii au lieu de mode binaire ?
Si non, cela peut aider.
$gunzip myarchive.tar.gz
Et puis décompresser l'résultant de goudron de fichier à l'aide de
$tar xvf myarchive.tar
Espère que cette aide.
OriginalL'auteur Saradhi
J'ai eu un problème similaire avec tronquée fichiers tar produite par une tâche cron et la redirection standard vers un fichier fixe le problème.
De parler à un collègue, cron crée une pipe et limite la quantité de sortie qui peut être envoyé à la norme. Je fixe la mienne par la suppression -v à partir de ma commande tar, ce qui rend beaucoup moins verbeux et de maintien de la sortie d'erreur dans le même endroit que le reste de mes tâches cron. Si vous avez besoin d'détaillé de goudron de sortie, vous aurez besoin de rediriger vers un fichier.
OriginalL'auteur Jerome
Dans mon cas, j'avais commencé à vous de décompresser avant le téléchargement du fichier tar a été complète.
OriginalL'auteur KawaiKx