Bonjour,
J’enregistre un flux radio par internet à intervalle régulier : le 1er mardi de chaque mois et le 1er vendredi à des horaires différents. La durée d’enregistrement diffère aussi selon le jour.
Pour cela j’utilise systemd-cron qui exécute un script.
Ce mois ci, j’ai testé la programmaion par systemd-cron et le script. Tout a fonctionné comme voulu.
Cependant je pense que mon script peut être mieux écrit ou de manière plus simple.
En particulier 2 points :
- l’action à exécuter selon que l’on soit un mardi ou vendredi
Dans mon script je lui dit si on est un mardi exécute la commande A, si on est une vendredi exécute la commande B. Si on est un lundi, mercredi, jeudi, samedi ou dimanche arrête le script. Ce qui n’est pas trop compliqué dans ce cas puisqu’il n’y a que 7 jours dans une semaine.
Mais si je dois utiliser le même principe avec un échantillon de 100 variables et ne vouloir déclenché une commande qu’avec 2 ou 3 variables, cela devient très fastidieux.
Existe une façon d’écrire : si on est mardi exécute la commande A, si on est vendredi exécute la commande B et pour tout autre valeur arrête le script ?
- Je pense que la partie pour renommer les fichiers peut être simplifiée pour arriver au même résultat.
ci-dessous le script :
#!/bin/bash
day=$(date +%A)
if [[ "$day" == "mardi" ]]; then
streamripper http://ais-sa3.cdnstream1.com/2606_128.mp3 -l 8000
fi
if [[ "$day" == "vendredi" ]]; then
streamripper http://ais-sa3.cdnstream1.com/2606_128.mp3 -l 32000
fi
if [[ "$day" == "dimanche" && "lundi" && "mercredi" && "jeudi" && "samedi" ]]; then
exit 0
fi
# renommer les fichiers enregistrés
cd '/home/tulum/Musique/BAGeL Radio/' # On se place dans le répertoire
for file in *.mp3; do
dcreation=$(stat -c %w "$file") # On récupère la date de création du fichier
dcreation="${dcreation:0:16}" # On garde que la date et l'heure sans les secondes, les 16 premiers caractères
dcreation="${dcreation// /_}" # remplacement des espaces par des underscores
dcreation="${dcreation//:/-}" # Remplacement des : par -
nom="${dcreation}_bagelradio.mp3" # Nouveau nom
mv "$file" "$nom" # Renommage des fichiers
done
rm -R incomplete
Ci-dessous le timer de systemd-cron :
[Unit]
Description=Enregistrement de BAGeL Radio
[Timer]
OnCalendar=Fri *-*-01..07 14:53
OnCalendar=Tue *-*-01..07 20:55
Persistent=false
[Install]
WantedBy=default.target
Merci