Je crée simplement un script dans / root/test.sh fichier:
#!/bin/bash
echo "hello"
mkdir newdir
suivant:
chmod +x /root/test.sh
Nous pouvons être convaincus que test.sh appartient à root:
root@ubuntu-s-1vcpu-1gb-ams3-01:~# find /root -user root /root
/root/test.sh
Alors, ma crontab:
root@ubuntu-s-1vcpu-1gb-ams3-01:~# crontab -l
Shell=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
* * * * * /root/test.sh
(J'ai aussi essayé avec run-parts:
* * * * * root run-parts /root/test.sh
)
Aucune méthode n’exécute mon script, ne sort pas "hello" et ne crée pas de répertoire newdir.
statut de service cron:
root@ubuntu-s-1vcpu-1gb-ams3-01:~# service cron status
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-08-18 15:46:42 UTC; 23h ago
Docs: man:cron(8)
Main PID: 1340 (cron)
Tasks: 1
Memory: 26.8M
CPU: 7.982s
CGroup: /system.slice/cron.service
└─1340 /usr/sbin/cron -f
Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[439]: (root) CMD (root run-parts /root/test.sh)
Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[438]: (CRON) info (No MTA installed, discarding output)
Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[438]: pam_unix(cron:session): session closed for user root
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1031]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1033]: (root) CMD (root run-parts /root/test.sh)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: (CRON) info (No MTA installed, discarding output)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: pam_unix(cron:session): session closed for user root
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1034]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1031]: pam_unix(cron:session): session closed for user root
toutes les minutes, cron essaie de faire quelque chose, mais comment je vois - j'ai un message
session fermée pour l'utilisateur root
et rien ne se passe.
Que dois-je faire de plus?
=============================================== =======================
après la suppression de la chaîne [email protected], le script crée correctement le répertoire newdir. Mais pas encore la chaîne imprimée 'bonjour'. Cela fonctionne donc, mais certains problèmes apparaissent dans la chaîne #echo "hello".
Exécutez crontab -e
et mettez-y la ligne suivante:
*/1 * * * * /root/test.sh 1> /dev/null 2> /root/test.err
Ceci fonctionne chaque minute. Le fichier test.err vous donnera une erreur de sortie au cas où la commande échouait.