Faites une nouvelle archive une fois par minute en utilisant "crontab"

9

J'essaie de créer un fichier crontabqui crée un nouveau .tarfichier chaque minute chaque jour ouvrable en utilisant le code suivant:

*/1 * * * 1,2,3,4,5 tar -cf /home/user/Archiv/$(date +"%Y%m%d%H%M").tar /home/user/Textverarbeitung/ -P

Ça ne marche pas. Pourquoi?

LUXS
la source
Je ne peux pas m'arrêter de lire le titre comme "Faire chaque minute d'archive en utilisant crontab" (minute comme en petit) parce que l'article est manquant (pas la faute d'OP), donc je le corrige.
chat
3
Pourquoi voudriez-vous utiliser */1? N'est-ce pas la même chose que juste *?
naught101

Réponses:

15

crontraite %comme des nouvelles lignes. Vous devez utiliser escape it, c'est- \%à- dire utiliser pour obtenir le littéral %tel qu'il est utilisé dans date.

Il vous faut donc:

date +"\%Y\%m\%d\%H\%M" 

Ou vous pouvez utiliser un script et utiliser toutes les commandes du script et appeler le script depuis crontab.

De man 5 crontab:

Les signes de pourcentage (%) dans la commande, sauf s'ils sont échappés avec une barre oblique inverse (\), seront modifiés en caractères de nouvelle ligne, et toutes les données après le premier% seront envoyées à la commande comme entrée standard. Il n'y a aucun moyen de diviser une seule ligne de commande en plusieurs lignes, comme le "\" final du shell.

heemayl
la source
4

Utiliser \%au lieu de %- cron utilise %comme nouvelle ligne.

YHOLGA
la source