crontab échoue, ne peut pas find aws exécutable

J'essaie d'exécuter un script de sauvegarde sur mon server ec2 amazon (ubuntu 14.04), pour créer automatiquement un instantané des volumes amazon ebs. Par conséquent, j'utilise le script aws-missing-tools: https://github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup

Ce script de sauvegarde, qui triggers ec2-automate-backup-awscli.sh:

SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/aws HOME=/ JAVA_HOME=/usr/lib/jvm/default-java/jre/ MAILTO=xxx.xxxxxx@me.com AWS_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx AWS_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /opt/aws/ec2-automate-backup-awscli.sh -r us-east-1 -s tag -t 'Backup,Values=true' -k 31 -p 

Mais je n'obtiens cette erreur que lors de la planification de ce script avec crontab:

 26 23 * * * /opt/aws/backup.sh >> /var/log/aws.log 2>&1 

Fichier journal: "Pour utiliser ec2-automate-backup-awscli.sh, l'exécutable" aws "doit être installé."

Exécuter directement "sh backup.sh" fonctionne bien. (des instantanés sont créés).

Des idées?

3 Solutions collect form web for “crontab échoue, ne peut pas find aws exécutable”

Votre variable PATH devrait être une list de directorys , donc, étant donné que votre file exécutable aws vit à /usr/local/bin/aws , votre PATH devrait être ceci:

 /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin 

De plus, il est préférable de définir le shell via un "hashbang", plutôt que d'utiliser la variable d'environnement SHELL , car cela permettra à crontab d'utiliser automatiquement l'interpréteur correct:

 #!/bin/bash 

J'ai eu cette erreur exacte. En supposant que vous avez les conditions préalables installées et que l'exécution de la command fonctionne manuellement, mais pas dans Cron, il se peut que le path correct ne soit pas exposé à la command cron. Vous pouvez résoudre ce problème en exécutant crontab -e puis en entrant le path directement dans l'onglet cron:

# Export the path so that the scripts run correctly PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin

Le caractère de point n'est pas autorisé dans le nom de file d'un script cron sauf si 14.04 a vraiment activé Linux Standards Base, juste A-Za-z0-9- – voir ce Bogue de Launchpad pour plus d'informations

Renommez " backup.sh " à " backupsh ".

Un meilleur test que " sh backup.sh " serait " run-parts --verbose /opt/aws/ ". Si les run-parts ne montrent pas votre nom de file, le cron ne l'exécutera pas.

  • Exécuter gparted depuis ubuntu 14.04 en direct
  • Faible utilisation de la memory sur VPS Ubuntu
  • Awstats: combine les journaux HTTP et HTTPS
  • ERR_INCOMPLETE_CHUNKED_ENCODING apache 2.4
  • Squid TPROXY sur Ubuntu Router / Gateway
  • Il est possible d'avoir le server MySQL et le server MariaDB set dans le même Ubuntu 14.04 en utilisant des packages officiels?
  • dovecot / postfix me font deux dossiers différents même user (user, user @ domaine)
  • Autoriser le trafic Internet et bloquer le réseau local pour les clients openvpn
  • Apache2 ne fonctionne pas après avoir changé le nom d'hôte de mon système Ubuntu
  • Obtenir trop d'erreurs sur les files ouverts pour Postgres
  • task fssortingm bloqué pendant plus de 120 secondes
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.