Lancement .sh

symbol

Membre actif
13 Octobre 2004
536
25
Bonjour

J'ai mon script qui est pret, je souhaite le lancer a certaines heures (14h00 et 21h00).

Je suis allé dans Calendrier, créé une alerte.

Capture_d_e_cran_2018_02_27_a_15_28_54.png


Mais j'ai eu un message d'erreur qui me parle de sandbox.

Capture_d_e_cran_2018_02_27_a_15_53_04.png

Comment lancer mon script selon mes besoins (14h00 & 21h00) ???
autre question : Un mac en mode veille, va t-il realiser des taches (lancement d'un script par exemple) ?

Merci
 
Dernière édition:
Ceci devrait faire ce que tu souhaites

Creating Launch Daemons and Agents : https://developer.apple.com/library...stemStartup/Chapters/CreatingLaunchdJobs.html

Une version proche de ce dont tu as besoin :
Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.local.kenocheck</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/user/kenocheck2.9.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
      <dict>
        <key>Hour</key>
        <integer>14</integer>
        <key>Minute</key>
        <integer>00</integer>
      </dict>
      <dict>
        <key>Hour</key>
        <integer>21</integer>
        <key>Minute</key>
        <integer>00</integer>
      </dict>
    </array>
  </dict>
</plist>
 
Avec automator on peut pas faire ca ?

Genre créer une action ou autre, qui serait ensuite lancer via calendrier

Ca serait plus simple et plus souple en cas de changement d'horaire de lancement.
 
Effectivement, la méthode que j'utilise n'est pas simple d'utilisation...
Je n'ai jamais testé avec automator
 
J'ai testé avec automator.

Quand je lance le .sh manuellement ca faire nickel. Si je le lance a partir d'un evenement créé dans calendrier, ca marche a moitié.

Etrangement une partie du script (la génération du resultats.txt vers .jpg ne fonctionne pas.).

Je ne comprends vraiment pas pourquoi puisque ca fait partie du script :-/

Ce qui marche avec automator, quand je lance avec evenement Calendrier :
- le script se lance a heure prévue
- recupère les pronos des joueurs sur mon forum
- va chercher le tirage + date sur le site de la FDJ
- génère et sauvegarde un fichier .txt a partir des infos downloadées

Ce qui ne fontionne pas :
- devrait convertir le fichier .txt (tirage + date + combinaisons gangantes ) en .pdf puis en .jpg et sauvegarder le fichier.
Bloc de code:
## converti le fichier RESULTATS.txt en image jpg (sans application externe)
cupsfilter RESULTATS.txt > RESULTATS.pdf 2> /dev/null
sips -s format jpeg RESULTATS.pdf --out RESULTATS.jpg 1> /dev/null

Voici le processus que j'utilise
Capture_d_e_cran_2018_02_28_a_08_21_49.png
 
Dernière édition:
Est ce ca c'est le chemin complet ?

Bloc de code:
## converti le fichier RESULTATS.txt en image jpg (sans application externe)
cupsfilter /Users/xxx/Desktop/RESULTATS.txt > /Users/xxx/Desktop/RESULTATS.pdf 2> /dev/null
sips -s format jpeg /Users/xxx/Desktop/RESULTATS.pdf --out /Users/xxx/Desktop/RESULTATS.jpg 1> /dev/null

SI c'est le bon chemin, ... ben ca marche toujours pas :-/
 
Ceci devrait faire ce que tu souhaites

Creating Launch Daemons and Agents : https://developer.apple.com/library...stemStartup/Chapters/CreatingLaunchdJobs.html

Une version proche de ce dont tu as besoin :
Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.local.kenocheck</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/user/kenocheck2.9.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
      <dict>
        <key>Hour</key>
        <integer>14</integer>
        <key>Minute</key>
        <integer>00</integer>
      </dict>
      <dict>
        <key>Hour</key>
        <integer>21</integer>
        <key>Minute</key>
        <integer>00</integer>
      </dict>
    </array>
  </dict>
</plist>

J’aurais fait ça avec cron [emoji12]

Mais ce qui est bien c’est qu’on a le choix !
https://support.apple.com/en-ie/gui...s-apdd556274b-9cc9-4764-bba8-87610a745747/mac
 
Chacun choisit la méthode qu’il préfère
J’aime bien la mienne car on peut donner un interval de planification plutôt qu’un instant précis
 
  • J’aime
Réactions: daffyb
@ecatomb

Tu indique
Bloc de code:
"<string>/Users/user/kenocheck3.0.sh</string>"
C'est pas plutot
Bloc de code:
"<string>/Users/xxx/Desktop/KenoCheck3.0.sh</string>
??

J'imagine que ca se place dans : SSD 525/Library/LaunchDaemons ?
 
J'ai essayé en changeant
"<string>/Users/user/kenocheck3.0.sh</string>" par "<string>/Users/xxx/Desktop/KenoCheck3.0.sh</string>

j'ai mis le fichier dans /bibliotheque/LaunchDaemons/KENOCHECK.plist

Bah... il s'est rien passé a 14h15 :) LOL
 
J'ai essayé en changeant
"<string>/Users/user/kenocheck3.0.sh</string>" par "<string>/Users/xxx/Desktop/KenoCheck3.0.sh</string>

j'ai mis le ifchier dans /bibliotheque/LaunchDaemons/KENOCHECK.plist

Bah... il s'est rien passé a 14h15 :) LOL

T’as redémarré ?
 
Y'a 10 minutes (+redemarrage), j'ai mis le fichier dans -> bibliotheque/launchAgent/KENOCHECK.plist

Dans le fichier KENOCHECK.plist, j'ai modifié et mis ->
Bloc de code:
<string>/Users/xxx/Desktop/KenoCheck3.0.sh</string>

Il semblerait que ca ai marché

Est-i possible d'avoir une banniere/alerte quand le .sh se lance ?
 
Dernière édition:
Effectivement, c'est bien avec
Bloc de code:
<string>/Users/xxx/Desktop/KenoCheck3.0.sh</string>

Le fichier plist doit être copié dans "/Library/LaunchAgents". Voici la liste des commandes/actions à faire avec les fichiers plist :

Bloc de code:
#Liste des plist actif
launchctl list | grep com.local

#Lister les plist du répertoire
ls -l /Library/LaunchAgents

#Copier le plist dans le répertoire
sudo cp "/Users/xxx/KENOCHECK.plist" /Library/LaunchAgents/KENOCHECK.plist

#Vérifier qu'il est correct
plutil /Library/LaunchAgents/KENOCHECK.plist

#Forcer le plist à se lancer sans attendre l'heure prévue
launchctl start com.local.KENOCHECK

#Lancer le plist pour qu'il tourne normalement
sudo launchctl load /Library/LaunchAgents/KENOCHECK.plist

#Supprimer le plist
sudo launchctl unload /Library/LaunchAgents/KENOCHECK.plist
sudo rm /Library/LaunchAgents/KENOCHECK.plist

Pour une notification lors du lancement du script, aucune idée.
 
Effectivement, c'est bien avec
Bloc de code:
<string>/Users/xxx/Desktop/KenoCheck3.0.sh</string>

Le fichier plist doit être copié dans "/Library/LaunchAgents". Voici la liste des commandes/actions à faire avec les fichiers plist :

Bloc de code:
#Liste des plist actif
launchctl list | grep com.local

#Lister les plist du répertoire
ls -l /Library/LaunchAgents

#Copier le plist dans le répertoire
sudo cp "/Users/xxx/KENOCHECK.plist" /Library/LaunchAgents/KENOCHECK.plist

#Vérifier qu'il est correct
plutil /Library/LaunchAgents/KENOCHECK.plist

#Forcer le plist à se lancer sans attendre l'heure prévue
launchctl start com.local.KENOCHECK

#Lancer le plist pour qu'il tourne normalement
sudo launchctl load /Library/LaunchAgents/KENOCHECK.plist

#Supprimer le plist
sudo launchctl unload /Library/LaunchAgents/KENOCHECK.plist
sudo rm /Library/LaunchAgents/KENOCHECK.plist

Pour une notification lors du lancement du script, aucune idée.

Dans ton script tu ajoutes un open d’un fichier text.
On peut peut être faire une notification, mais là il va falloir demander à Google.
 
Après une recherche googleienne, ca devrait faire l'affaire :

Bloc de code:
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'