J'ai un script python dans /home/pi/update_rrd_data.py qui est supposé stocker les logs dans le dossier/home/pi/logs_rrd.Python os.path.join() ne se connecte pas correctement lors de l'utilisation du travail cron
Voilà comment je l'ai implémenté:
current_folder = os.path.dirname(os.path.abspath(inspect.stack()[0][1]))
log_folder = os.path.join(current_folder, 'logs_rrd')
if not os.path.exists(log_folder): os.makedirs(log_folder)
file_name = __file__[:-3] + '_' + datetime.strftime(datetime.now(), '%Y%m%d%H%M') + '.log'
log_file = os.path.join(log_folder, file_name)
logging.basicConfig(filename=log_file, level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(filename)s->%(funcName)s:%(message)s', datefmt='%m/%d/%Y_%I:%M:%S_%p')
logging.info('\nCurrent Folder: {}\nLog Folder: {}\nLog File: {}'.format(current_folder, log_folder, log_file))
Quand je lance le script manuellement, il fonctionne très bien, ce qui est ce que je reçois dans le fichier journal/home/pi/logs_rrd/update_rrd_data_201709271426. log:
dossier actuel:/home/pi
Connexion dossier:/home/pi/logs_rrd
fichier journal: /home/pi/logs_rrd/update_rrd_data_201709271426.log
Cependant, quand je le lance comme cron travail, les fichiers journaux sont créés dans le sam e dossier en tant que script au lieu du dossier logs_rrd. C'est ce que je reçois dans le fichier journal /home/pi/update_rrd_data_201709271445.log:
Dossier actuel:/home/pi
Connexion Dossier:/home/pi/logs_rrd
fichier journal:/home/pi/update_rrd_data_201709271445 .log
Je n'arrive pas à comprendre pourquoi la valeur du dossier de journal est correcte, mais le fichier journal supprime la partie logs_rrd du dossier de journal.
Voici comment je lance le Cron:
*/5 * * * * /usr/bin/python /home/pi/update_rrd_data.py
Tous les dossiers et les fichiers appartiennent à root donc il ne devrait pas y avoir de problèmes d'autorisation d'écriture.
Avez-vous essayé d'utiliser '__file__' à la place' inspect.stack() [0] [1] '? – AndMar
@AndMar Oui je l'ai fait, mais le dossier actuel devient/root. En outre, les valeurs du dossier actuel et du dossier de journal sont correctes dans les deux cas. C'est quand j'essaie de combiner le nom du fichier dans le dossier du journal qu'il agit bizarrement et supprime la partie "logs_rrd". – Rahul