Soucis avec un script

Un petit truc simple à tester pour voir si on pourra lancer ton appli avec le cron:

Tu ouvres une fenêtre du terminal
Tu tapes open puis un espace et tu fais un gilssé, déposé de ton application
Tu valides avec entrée
Est-ce que cela fonctionne ?
Oui cela a fonctionné
 
Une petite recherche en ligne donne pas mal de pistes:



(après, il faut naviguer dans les liens ...)
Merci pour ces liens. Je n'avais pas trouvé le premier qui semble intéressant.
Bien à vous.
 
Ton application n 'a pu être faite avec automator sinon ce ne serait pas un fichier unix !

Alors il est curieux que le cron ne fonctionne pas !

Alors on va passer au plan B
Si ton script contient bien:

cd desktop/tesla
docker compose exec -T database pg_dump -U teslamate teslamate > backup/teslamate.bck
cd backup
rm teslamate.bck.bz2
bzip2 -k teslamate.bck

Alors on fait une application avec automator

Tu ouvres automator qui est dans applications
Tu choisis —>nouveau document
Tu choisis —>Application
Dans la barre de gauche—>Utilitaires —> Exécuter un script shell
Tu glisses l’action —> Exécuter un script shell dans la fenêtre de droite
Dans la partie ou il est écrit cat, tu effaces cat et tu colles les commandes de ton script

Menu fichier avec la touche option tu fais un enregistrer sous, tu choisis un nom et tu enregistres ou tu veux.

Essai maintenant avec cette nouvelle application
Directement en la lançant avec un double clic, puis si cela fonctions essai
soit avec le cron soit avec le calendrier
 
Dernière édition:
@zeltron54

J4ai refait ce que tu m'as dit. Ensuite j'ai lancé la nouvelle application. Elle se lance bien.

Le seul gros soucis, c'est que les fichiers qu'elle génère font 0 Octets, alors que le 1er doit faire 19.4 Mo et le 2ème 1,8 Mo
 
L'application ne fait qu'exécuter les commandes que tu as mis dedans.

Je suppose que dans ton fichier unix qui fonctionne il doit y avoir autre chose. A vérifier !

Curieux ! cela fait beaucoup de choses qui ne fonctionnent pas chez toi, le cron, l'application ...
 
Peut-être un problème de PATH. Tu ne précises aucun shell dans ton script. Quel est ton shell dans Terminal ? Bash ou zsh ? Si dans Terminal tu tapes
Bloc de code:
which docker
il répond quoi ? /usr/local/bin/docker ? À ce moment-là tu mets le path complet dans ton script.
 
Bonsoir,
En relisant tes posts je me pose une question, tu dis quand je lance ma petite application à la main pas de soucis, mais tu la lances comment avec un simple double clic ou tu la glisses dans le terminal ou ? détaille comment tu fais.

De plus pour voir ce que contient ton petit script, fais un clic droit dessus et demande ouvrir avec et choisis TextEdit et fais un copier de ce qu'il contient et poste le que l'on voit pourquoi cela ne marche pas avec les autres essais (si problème de shell , de path ou de commandes ou ? ).

Je dois reconnaître que je ne comprend pas pourquoi tous ces echecs !
 
Bonsoir,
En relisant tes posts je me pose une question, tu dis quand je lance ma petite application à la main pas de soucis, mais tu la lances comment avec un simple double clic ou tu la glisses dans le terminal ou ? détaille comment tu fais.

De plus pour voir ce que contient ton petit script, fais un clic droit dessus et demande ouvrir avec et choisis TextEdit et fais un copier de ce qu'il contient et poste le que l'on voit pourquoi cela ne marche pas avec les autres essais (si problème de shell , de path ou de commandes ou ? ).

Je dois reconnaître que je ne comprend pas pourquoi tous ces echecs !
Voilà ce qu'il y a dans ma petite application :

cd desktop/tesla
docker compose exec -T database pg_dump -U teslamate teslamate > backup/teslamate.bck
cd backup
rm teslamate.bck.bz2
bzip2 -k teslamate.bck

Pour la lancer, je clique 2 fois dessus
 
Alors on va le faire avec un applescript.

Première solution (l'applescript remplace complètement ton script), le code:
Bloc de code:
do shell script "#! /bin/sh" & linefeed & "cd ~/Desktop/tesla" & linefeed & "docker compose exec -T database pg_dump -U teslamate teslamate > backup/teslamate.bck" & linefeed & "cd backup" & linefeed & "rm backup/teslamate.bck.bz2" & linefeed & "bzip2 -k backup/teslamate.bck"

Deuxième solution (l'applescript ne fait que lancer ton scipt), le code:
Bloc de code:
tell application "Terminal"
    open "/Users/ramses/Desktop/Sauvegarde Grafana"
end tell

A essayer, et si cela fonctionne tu devrais pouvoir lancer un de ces scripts ( celui qui fonctionne ) soit par le calendrier soit avec un cron.

J'attends les résultats des tests ! ;)
 
Dernière édition:
Pour ce qui est du script, il faut mettre le chemin complet de l'application docker, sinon il ne trouve pas. D'où le fichier à 0 Ko.
Capture d’écran 2024-03-12 à 10.49.19.png

Ce qui donne, à supposer que comme chez moi docker soit dans /usr/local/bin

Bloc de code:
do shell script "#! /bin/sh" & linefeed & "cd ~/Desktop/tesla" & linefeed & "/usr/local/bin/docker compose exec -T database pg_dump -U teslamate teslamate > backup/teslamate.bck" & linefeed & "cd backup" & linefeed & "rm backup/teslamate.bck.bz2" & linefeed & "bzip2 -k backup/teslamate.bck"
 
  • J’aime
Réactions: zeltron54
Alors on va le faire avec un applescript.

Première solution (l'applescript remplace complètement ton script), le code:
Bloc de code:
do shell script "#! /bin/sh" & linefeed & "cd ~/Desktop/tesla" & linefeed & "docker compose exec -T database pg_dump -U teslamate teslamate > backup/teslamate.bck" & linefeed & "cd backup" & linefeed & "rm backup/teslamate.bck.bz2" & linefeed & "bzip2 -k backup/teslamate.bck"

Deuxième solution (l'applescript ne fait que lancer ton scipt), le code:
Bloc de code:
tell application "Terminal"
    open "/Users/ramses/Desktop/Sauvegarde Grafana"
end tell

A essayer, et si cela fonctionne tu devrais pouvoir lancer un de ces scripts ( celui qui fonctionne ) soit par le calendrier soit avec un cron.

J'attends les résultats des tests ! ;)
Génial. Cela fonctionne parfaitement avec Calendrier. Je te remercie pour ton aide
 
  • J’aime
Réactions: boninmi
Enfin une bonne nouvelle !
content pour toi !
 
  • J’adore
Réactions: Ramses7420