Ftp python
Le
bmil

bonjour ,
Un script python ftp.py est actif en mode console .
Dans un crontab la commande n'exécute pas le script .
Quel dépendance un cron ne peut pas interpréter avec py ?
def go_ftp():
ftp = ftplib.FTP("**********")
ftp.login("************")
ftp.cwd('*************')
fichier = read_date()
# print "fic : "+fichier
file = open(fichier, 'rb') # ici, j'ouvre le fichier
ftp.storbinary('STOR '+fichier, file) # j'indique le fichier à
envoyer
ftp.quit()
file.close()
print "Transfert fichier "
print "Terminé"
print(go_ftp())
Un script python ftp.py est actif en mode console .
Dans un crontab la commande n'exécute pas le script .
Quel dépendance un cron ne peut pas interpréter avec py ?
def go_ftp():
ftp = ftplib.FTP("**********")
ftp.login("************")
ftp.cwd('*************')
fichier = read_date()
# print "fic : "+fichier
file = open(fichier, 'rb') # ici, j'ouvre le fichier
ftp.storbinary('STOR '+fichier, file) # j'indique le fichier à
envoyer
ftp.quit()
file.close()
print "Transfert fichier "
print "Terminé"
print(go_ftp())
Essaie de faire un bête script shell lancé par cron, qui t'enregistre dans
un fichier le contenu de $PATH et consort.
Genre set > /tmp/environnement.txt
Histoire de voir déjà si Python est accessible dans cet environnement.
--
Laurent POINTAL -
-----------------------------------------------------------------------------
OK - J'ai fais pas mal de manip et un post non résolu est ici :
http://www.developpez.net/forums/d1435216/autres-langages/python-zope/script-python-ftp-crontab/
<zip>
-----------------------------------------------------------------------------
zope/script-python-ftp-crontab/
Désolé, je n'ai pas de compte developpez.
Essaie de mettre le chemin complet vers Python au niveau de la crontab.
Et comme indiqué par une personne (et conseillé dans la doc ubuntu par
exemple), avoir un système d'envoi d'emails minimum permet de récupérer les
indications d'erreur de cron.
http://doc.ubuntu-fr.org/cron
=> NOTA IMPORTANT: Dans le cas où votre crontab refuserait de s'exécuter,
vérifiez que vous disposez bien du package mailutils. En effet, cron logue
ses actions en envoyant un mail à l'utilisateur courant.
--
Laurent POINTAL -
-----------------------------------------------------------------
#! /usr/bin/python
# -*- coding: utf-8 -*-
import ftplib
ftp = ftplib.FTP("*********")
ftp.login("************")
ftp.cwd('**********')
ftp.retrlines('LIST')
###### c'est la déclaration en local du fichier qui bloque
le package mailutils renvoi en log ceci :
Traceback (most recent call last):
file = open(fichier, 'rb') # ici, j'ouvre le fichier ftp.py
IOError: [Errno 2] No such file or directory: 'qcm.pdf'
###########################
fichier = "qcm.pdf"
file = open(fichier, 'rb') # ici, j'ouvre le fichier ftp.py
ftp.storbinary('STOR '+fichier, file) # j'indique le fichier à envoyer
--------------------------------
Le mode console lit bien >> fichier = "qcm.pdf"
Le mode cron ne prend pas en compte cette déclaration
tu n'es pas dans le bon dossier quand c'est la tache cron qui s'exécute?
-------------------------------------------------------------------------
Ce que veut python n'est pas clair - Avec un cron sur php , la data
passent par ftp dans les 2 sens ..
Fais un test en mettant le chemin complet à l'ouverture du fichier:
file = open(os.path.join(repertoire, fichier), 'rb)
Note: pour connaître le répertoire courant: os.getcwd()
--
Laurent POINTAL -
----------------------------------------------------------------------------
ok - mon appli fonctionnement avec php - je ferai quelques essais sur py
et son cron . Le problème des scripts py plus courts c'est pour gagner
en rapidité mais au niveau développement le temps perdu sur une ligne
qui foire ne se rattrape pas .
----------------------------------------------
La synthax >> file = open(os.path.join(repertoire, fichier), 'rb)
est en error en mode shell python
C'est le cron qui commande en partie ftp_1.py et qui ne veut pas ouvrir
file .
Avec repertoire = os.getcwd() , le cron affiche l'erreur de synthax du shell
fr.comp.lang.python
(
Il manque la simple quote de fermeture de rb:
file = open(os.path.join(repertoire, fichier), 'rb')
--
Oh mais laisse allumé bébé, y'a personne au contrôle
Et les dieux du radar sont tous out
Et toussent et se touchent et se poussent
Et se foutent et se broutent
-- H.F. Thiéfaine, Mathématiques souterraines