Lancement .sh

symbol

Membre émérite
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.



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


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:

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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>
 

symbol

Membre émérite
13 Octobre 2004
536
25
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.
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
Effectivement, la méthode que j'utilise n'est pas simple d'utilisation...
Je n'ai jamais testé avec automator
 

symbol

Membre émérite
13 Octobre 2004
536
25
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
 
Dernière édition:

symbol

Membre émérite
13 Octobre 2004
536
25
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 :-/
 

daffyb

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 509
1 546
Angoulême
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

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
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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

symbol

Membre émérite
13 Octobre 2004
536
25
@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 ?
 

symbol

Membre émérite
13 Octobre 2004
536
25
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
 

daffyb

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 509
1 546
Angoulême
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é ?
 

symbol

Membre émérite
13 Octobre 2004
536
25
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:

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
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.
 

daffyb

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 509
1 546
Angoulême
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.
 

symbol

Membre émérite
13 Octobre 2004
536
25
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"'