Si je définis mon planificateur cron via crontab -e
le planificateur fonctionne correctement. Cependant, en plaçant le fichier dans /etc/cron.hourly/
ne fonctionne pas dans mon cas.
Running run-parts --test /etc/cron.hourly
sortir le script. Aussi, le nom du script est my_sql_backup
et n'a pas d'extension de fichier.
Le script est root:root
avec la permission de 777.
Le site cron.hourly
semble fonctionner, car voici la sortie de l'application grep CRON /var/log/syslog
:
Mar 1 11:17:01 my-instance CRON[12919]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
De plus, si j'ai exécuté manuellement la commande, le planificateur a fonctionné comme il le devait :
sudo bash -c "cd / && run-parts --report /etc/cron.hourly"
Cependant, cela semble ne pas fonctionner en réalité. Le script sauvegarde la base de données MySQL dans Google Cloud Storage, mais le stockage n'est pas mis à jour lorsque je le vérifie via la console Web.
Est-ce qu'il y a quelque chose que je manque ici ? Pourquoi mon scheduler script qui a été mis en /etc/cron.hourly/
ne fonctionne pas ?
UPDATE
Ayant ajouté le echo test > /tmp/foobar.tmp
à mon cron script, j'ai trouvé que le fichier tmp est là. En fait, j'ai trouvé mon propre fichier tmp émis par le script.
Le contenu du script est le suivant. Le problème s'est peut-être produit lors de l'exécution de gsutil
commande ?
# define environment variables here
sudo sh -c "mysqldump -u$MYSQL_USER -p$MYSQL_PASS $MYSQL_DBNAME --single-transaction | gzip -9 > $MYSQL_TEMPPATH" >/dev/null 2>&1
gsutil cp $MYSQL_TEMPPATH gs://$GS_BUCKET_NAME/$MYSQL_S3_DESTPATH >/dev/null 2>&1
Encore une fois, le script fonctionnait bien si je l'exécutais manuellement, donc les variables d'environnement sont définies sur des valeurs correctes....
MISE À JOUR 2
J'ai finalement trouvé qu'après avoir obtenu le fichier journal émis par gsutil
il a le contenu suivant :
AccessDeniedException : 403 Portée OAuth2 insuffisante pour effectuer cette opération.
Je dois encore chercher à savoir pourquoi l'accès est refusé s'il est exécuté en /etc/cron.hourly/
... Mais le problème était sur gcloud
pas cron... Merci pour le soutien dans les commentaires.