[LINUX] Enregistrer une tâche dans cron pour la première fois

--Environnement - Debian GNU/Linux 10 (buster) - apt 1.8.2 (amd64)

Je veux récupérer régulièrement le référentiel Git comme Redmine, j'ai essayé d'enregistrer une tâche avec cron pour la première fois

Installer cron avec apt

--Référence

#Mettre à jour la liste des référentiels
$ apt update
Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
...réduction...
48 packages can be upgraded. Run 'apt list --upgradable' to see them.
N: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Version' value from '10.0' to '10.3'

#Rechercher cron
$ apt list cron
Listing... Done
cron/stable 3.0pl1-134+deb10u1 amd64

#Installer cron
$ apt install -y cron
Reading package lists... Done
Building dependency tree
...réduction...
Processing triggers for mime-support (3.62) ...

#Vérifiez le répertoire pour cron
$ ls -la /etc/ | grep cron
drwxr-xr-x 2 root root      26 Apr  7 04:59 cron.d          #Répertoire pour placer les fichiers de paramètres de tâches automatiques autres que les suivants
drwxr-xr-x 1 root root      44 Apr  7 04:59 cron.daily      #Répertoire pour placer le fichier de configuration automatique des tâches qui est exécuté chaque jour
drwxr-xr-x 2 root root      26 Apr  7 04:59 cron.hourly     #Répertoire pour placer le fichier de paramètres de tâche automatique qui s'exécute toutes les heures
drwxr-xr-x 2 root root      26 Apr  7 04:59 cron.monthly    #Répertoire pour placer les fichiers de configuration de tâches automatiques exécutés chaque mois
drwxr-xr-x 2 root root      26 Apr  7 04:59 cron.weekly     #Répertoire pour placer le fichier de paramètres de tâche automatique hebdomadaire
-rw-r--r-- 1 root root    1042 Oct 11 07:58 crontab         #Fichier de configuration principal des tâches automatiques horaires, quotidiennes, mensuelles, hebdomadaires

#Vérifiez l'état de démarrage de cron
$ /etc/init.d/cron status
[FAIL] cron is not running ... failed!

#Depuis que je viens d'installer cron, aucune tâche n'est enregistrée
$ crontab -l
no crontab for root

#Démarrer cron
$ /etc/init.d/cron start
[ ok ] Starting periodic command scheduler: cron.

#Vérifiez l'état de démarrage de cron
$ /etc/init.d/cron status
[ ok ] cron is running.

Enregistrez les tâches avec cron afin que le shell puisse s'exécuter régulièrement

# cron.git dans le répertoire d-Créez un fichier de configuration appelé cron et enregistrez la tâche
$ vi /etc/cron.d/git-cron
#Il semble que le fichier de paramètres nécessite une ligne vide à la fin
$ cat /etc/cron.d/git-cron
*/5 * * * * root /path/to/git-fetch.sh >> /var/log/cron.log 2>&1


#Donner l'autorisation d'exécution au fichier de paramètres
$ chmod 755 /etc/cron.d/git-cron
$ ls -la /etc/cron.d/git-cron
-rwxr-xr-x 1 root root   51 Apr  7 05:46 git-cron

#Créer un shell à exécuter
$ vi /path/to/git-fetch.sh
# (Pas le sujet principal)Le contenu est de mettre à jour Git de Redmine
$ cat /path/to/git-fetch.sh
#!/bin/sh
cd /path/to/hoge.git/
git fetch origin 'refs/heads/*:refs/heads/*'

cd /path/to/redmine
bundle exec rake redmine:fetch_changesets RAILS_ENV=production

#Donner l'autorisation d'exécution au shell pour qu'il s'exécute
$ chmod 755 /path/to/git-fetch.sh
$ ls -la /path/to/git-fetch.sh
-rwxr-xr-x 1 root root 185 Apr  7 05:57 /path/to/git-fetch.sh

Ce qui a échoué

/bin/sh: 1: /path/to/git-fetch.sh: Permission denied --Event: une erreur s'est produite dans le journal qui était censée être sortie dans le fichier de paramètres. --Cause: le shell à exécuter n'a pas l'autorisation d'exécution. --Action: donnez au shell l'autorisation d'exécution

$ ls -la /path/to/git-fetch.sh
-rw-r--r-- 1 root    root    185 Apr  7 05:57 git-fetch.sh
$ chmod 755 /path/to/git-fetch.sh
$ ls -la /path/to/git-fetch.sh
-rwxr-xr-x 1 root root 185 Apr  7 05:57 /path/to/git-fetch.sh

J'ai fait une erreur en écrivant "Exécuter toutes les 5 minutes" et "Exécuter toutes les 5 minutes"

Je voulais "exécuter toutes les 5 minutes", mais c'était "exécuter toutes les 5 minutes" ...

Référence: Comment définir cron --Qiita

Minutes, heures, jours, lundis{Commande d'exécution}
#Courir à 5 minutes toutes les heures
5 * * * * root {Commande d'exécution}
#Courir toutes les 5 minutes
*/5 * * * * root {Commande d'exécution}

Recommended Posts

Enregistrer une tâche dans cron pour la première fois
MongoDB avec Python pour la première fois
Kaguru pour la première fois
Une note utile lors de l'utilisation de Python après une longue période
Voir python pour la première fois
Démarrez Django pour la première fois
Résumé des points d'achoppement à Django pour la première fois
J'ai essayé tensorflow pour la première fois
Changer la liste dans l'instruction for
Essayons Linux pour la première fois
Ce que j'ai appris en écrivant une Pull Request Python pour la première fois de ma vie
Pour la première fois dans Numpy, je vais le mettre à jour de temps en temps
Comment utiliser MkDocs pour la première fois
Faire un histogramme pour le moment (matplotlib)
J'ai essayé la programmation python pour la première fois.
J'ai essayé Mind Meld pour la première fois
Essayez de publier sur Qiita pour la première fois
Affichons un template simple idéal pour le premier Django
Transformez plusieurs listes avec l'instruction for en même temps en Python
J'ai essayé Python sur Mac pour la première fois.
J'ai essayé python pour la première fois avec heroku
Pour la première fois, j'ai découvert Unix (Linux).
Jusqu'à ce que vous gagniez la médaille d'argent (top 3%) dans le concours auquel vous avez participé dans un délai d'un mois pour la première fois en science des données!
AI Gaming Je l'ai essayé pour la première fois
Faisons un programme cron en Java! !! (Planificateur de tâches)
J'ai fréquenté l'école et j'ai participé pour la première fois au concours limité BEGINNER de SIGNATE.
Je souhaite créer une base de données de déjeuners [EP1] Django pour la première fois
Je souhaite créer une base de données de déjeuner [EP1-4] Django pour la première fois
C'est bon de participer pour la première fois! Un kit de démarrage hackason que vous souhaitez préparer "avant" de participer au hackason!
Définir une tâche pour définir l'environnement de fabric dans YAML
Remarques sur l'intégration du langage de script dans les scripts bash
Remarque 2 pour intégrer le langage de script dans un script bash
[Comprendre au plus court] Principes de base de Python pour l'analyse des données
Se présenter à Qiita pour la première fois (test post)
J'ai essayé l'API Google Cloud Vision pour la première fois
Je veux créer un Dockerfile pour le moment.
Si vous apprenez Linux pour la première fois, faites-le!
L'histoire de la création d'un «espace de discussion sur l'esprit et le temps» exclusivement pour les ingénieurs de l'entreprise
Qu'est-ce qu'un chien? Django - Essayez d'utiliser Form pour la première fois Volume de transmission POST
À propos de la nécessité d'une première barre oblique dans le nom de l'abonné et le nom de l'éditeur
Créez un environnement Selenium sur Amazon Linux 2 dans les plus brefs délais
Mettre le processus en veille pendant un certain temps (secondes) ou plus en Python
Code dont j'aurais aimé me souvenir lors de ma première participation à AtCoder (Réflexion 1 pour la prochaine fois)
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Une fonction qui mesure le temps de traitement d'une méthode en python
L'histoire de la sortie d'un outil de vérification de texte créé par Python sur GitHub x CircleCI pour la première fois
Le premier débutant en programmation à essayer une analyse de données simple avec programmation
Paramètres d'exécution d'un test à chaque fois que vous enregistrez un fichier dans l'éditeur à l'aide de watchmedo (chien de garde)
J'ai créé une fonction pour vérifier si le webhook est reçu dans Lambda pour le moment
Raspberry Pi --1 --Première fois (Connectez un capteur de température pour afficher la température)
Introduction au Deep Learning pour la première fois (Chainer) Reconnaissance de caractères japonais Chapitre 3 [Reconnaissance de caractères à l'aide d'un modèle]
L'histoire du retour au front pour la première fois en 5 ans et de la refactorisation de Python Django
La première étape de Python Matplotlib
Essayez d'utiliser FireBase Cloud Firestore avec Python pour le moment
Si vous êtes novice en programmation, pourquoi ne pas créer un "jeu" pour le moment? L'histoire
[Salut Py (Partie 1)] Je veux faire quelque chose pour le moment, alors commencez par fixer un objectif.