Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1064 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script shell ftp

n°1238538
websat
Posté le 20-09-2010 à 15:57:15  profilanswer
 

Salut
J'ai une camera ip qui fonctionne sur uclinux, le firmware est assez limité et je voudrait rajouter un upload d'image par ftp, il est possible de rajouter des scripts dans la camera (directement a partir du menu ou via telnet):
 
J'ai un exemple de script pour l'envoi par email:
 
#!/bin/sh
 
MAILTO="name@domain.com"
MAILHOST=domain.com
 
MAILFROM=name@domain.com
HOSTNAME=domain.com
 
IMAGEPATH=/var/httpd/netcam.jpg
 
IMAGE=`basename $IMAGEPATH`
SUBJECT=netcam-`date '+%H:%M:%S'`
 
/bin/uuencode $IMAGEPATH $IMAGE | /bin/mail -s $SUBJECT -S $MAILHOST -H $HOSTNAME -f $MAILFROM $MAILTO
 
Voila si quelqu'un pouvait m'indiquer la marche a suivre ou des exemple de script, merci d'avance.


---------------

mood
Publicité
Posté le 20-09-2010 à 15:57:15  profilanswer
 

n°1238549
Hrolf
Posté le 20-09-2010 à 16:11:59  profilanswer
 

Le principe c'est d'utiliser un <<EOF  
...
EOF
 

Code :
  1. ftp -u <host> <<EOF
  2. user <user> <password>
  3. bin
  4. put/get <file>
  5. quit
  6. EOF


 
Attention le ftp n'est PAS FIABLE !
 
Il renvoi un retour 0 sauf en cas d''erreur de connexion, si par exemple le FS est plein et que seul 10% du fichier à été transmis tu auras quand même un beau OK.


---------------
Il y a trois sortes de mensonges : les mensonges, les gros mensonges et les statistiques !
n°1238664
websat
Posté le 20-09-2010 à 19:36:17  profilanswer
 

Merci pour ta réponse, donc le script devrait resembler a ca:
 

Code :
  1. #!/bin/sh
  2. ftp -u 0.0.0.0 <<EOF
  3. user login 123456
  4. bin
  5. cd /domains/webcam/public_html/upload
  6. put /var/httpd/netcam.jpg
  7. quit
  8. EOF


n°1238741
Hrolf
Posté le 21-09-2010 à 10:26:26  profilanswer
 

C'est ça, après rien ne t'empêche de le rendre  générique comme tu l'as fait pour l'envoi par mail avec des variables et tout et tout :D


Message édité par Hrolf le 21-09-2010 à 10:28:25

---------------
Il y a trois sortes de mensonges : les mensonges, les gros mensonges et les statistiques !
n°1238752
websat
Posté le 21-09-2010 à 10:46:32  profilanswer
 

Bon ca na pas l'air de fonctionner, voila ce que j'ai fait:
 
Via telnet, création avec vi d'un fichier ftp.sh avec dedans:
 
   #!/bin/sh
   ftp -u 0.0.0.0 <<EOF
   user login 123456
   bin
   cd /domains/webcam/public_html/upload
   put /var/httpd/netcam.jpg
   quit
   EOF
 
Sauvegarde du fichier puis chmod +x ftp.sh  
 
Edition du fichier crontab avec ajout de la ligne: */5 * * * * admin /etc/ftp.sh  
 
j'ai tapé la commande config save dans telnet et enfin un reboot de la camera, et résultat aucuns fichier d'envoyé !!!

n°1238755
roondar
Posté le 21-09-2010 à 10:50:32  profilanswer
 

Et si tu lançais le script à la main pour voir si y a des erreurs  aussi !

n°1238759
websat
Posté le 21-09-2010 à 10:56:58  profilanswer
 

j'ai fait un ./ftp.sh via telnet et ca repond: ftp: u: unknown option


---------------

n°1238773
esox_ch
Posté le 21-09-2010 à 11:14:30  profilanswer
 

Bein voilà :o
ftp n'a pas l'option -u chez toi :o
 
donc, tape "man ftp" pour voir ce qui cloche


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1238781
websat
Posté le 21-09-2010 à 11:24:06  profilanswer
 

alors man ftp donne: man not found


---------------

n°1238783
websat
Posté le 21-09-2010 à 11:28:13  profilanswer
 

et lorsque je lance le script sans le -u ca donne ca:
 
ftp.sh
Name (0.0.0.0:admin): Password:
Login incorrect.
Login failed.
?Invalid command
?Ambiguous command


Message édité par websat le 21-09-2010 à 11:29:08

---------------

mood
Publicité
Posté le 21-09-2010 à 11:28:13  profilanswer
 

n°1238784
roondar
Posté le 21-09-2010 à 11:45:36  profilanswer
 

Essayes avec ca:

Code :
  1. #!/bin/sh
  2. HOST='ftp.users.qwest.net'
  3. USER='yourid'
  4. PASSWD='yourpw'
  5. FILE='file.txt'
  6. ftp -n $HOST <<END_SCRIPT
  7. quote USER $USER
  8. quote PASS $PASSWD
  9. put $FILE
  10. quit
  11. END_SCRIPT
  12. exit 0

n°1238794
websat
Posté le 21-09-2010 à 12:58:38  profilanswer
 

j'ai essayé ton bout de code je tape sur entrer et le curseur descend d'une ligne et c'est tout par d'autre réaction... et au bout de quelques minutes:
 
ftp: connect: Connection timed out
Not connected.
Not connected.
Not connected.


Message édité par websat le 21-09-2010 à 13:06:28

---------------

n°1238804
Hrolf
Posté le 21-09-2010 à 13:25:29  profilanswer
 

En fait tu sais que si tu met un "set -x" en début de fichier (après l'appel au shell) tu auras un joli mode débug :D
 
Le principe est normalement le bon après le client FTP que tu utilises doit avoir des options à la con, essai de faire un test ftp à la main pour savoir ce qu'il demande à option
ce qui est entre les 2 EOF est ce que tu aurais normalement tapé comme commandes à la main.


---------------
Il y a trois sortes de mensonges : les mensonges, les gros mensonges et les statistiques !
n°1238809
esox_ch
Posté le 21-09-2010 à 13:29:57  profilanswer
 

websat a écrit :

alors man ftp donne: man not found

 

Tu as pas man installé sur ta machine  [:k-nar]
Mais comment tu fais pour bosser dessus :??:


Message édité par esox_ch le 21-09-2010 à 13:30:24

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1238813
websat
Posté le 21-09-2010 à 13:33:15  profilanswer
 

Hrolf a écrit :

En fait tu sais que si tu met un "set -x" en début de fichier (après l'appel au shell) tu auras un joli mode débug :D
 
Le principe est normalement le bon après le client FTP que tu utilises doit avoir des options à la con, essai de faire un test ftp à la main pour savoir ce qu'il demande à option
ce qui est entre les 2 EOF est ce que tu aurais normalement tapé comme commandes à la main.


 
Ok, merci je teste ça, pour répondre a esox_ch la machine en question est une camera ip...

n°1238817
Hrolf
Posté le 21-09-2010 à 13:37:50  profilanswer
 

Tu fais le script sur la camera IP vers le serveur  :heink:  
 
C'est étrange ça :o
 
Je ferais plutôt le contraire moi !


---------------
Il y a trois sortes de mensonges : les mensonges, les gros mensonges et les statistiques !
n°1238837
websat
Posté le 21-09-2010 à 14:16:45  profilanswer
 

Oui, je pense que je devrait plutôt gérer ca sur le serveur (Kimsufi 250), en fait ce que je voudrait faire:
 
L'image de la camera est en 1024 x 768 je souhaite rester dans cette résolution car c'est la résolution optimale pour avoir la meilleure qualité d'image, j'utilise un diaporama (pixxerbase.ch) qui fonctionne uniquement avec des images en 640 x 480 et avec un chemin spécifique pour l'archivage des images:
 
%Y/%m/%d/%H/m12-vga%M.jpg ce qui donne 2010/09/21/14/m12-vga15.jpg
 
Maintenant je ne sait ce qu'il est possible de faire mais il faudrait un script pour télécharger l'image en 1024 x 768 toutes les 5 minutes, la redimensionner en 640 x 480, créer les répertoires suivent la date et l'heure et placer l'image au bon endroit
 
Mais peut être le mieux est de trouver un autre diaporama qui pourrai afficher les images archivées sous ce format: 18_09_2010_17_32.jpg  car la camera sait envoyer les images de cette maniére.


---------------

n°1238863
roondar
Posté le 21-09-2010 à 15:38:44  profilanswer
 

Et tu en es où avec le ftp ?

n°1240058
sputnick
bip...bip...bip...bip...bi...b
Posté le 28-09-2010 à 04:32:46  profilanswer
 

lftp serais pourrais être indiqué ici

n°1240068
websat
Posté le 28-09-2010 à 09:13:21  profilanswer
 

En fait pour simplifier les choses (en cas de mise a jour de la camera je perds les modifs) le mieux je pense est d'utiliser un script php pour trier les images suivant la date et l'heure voulue, la camera peut nativement uploader les images de cette manière: %d_%m_%Y_%H_%M.jpg. Si quelqu'un connait un tel script...


---------------

n°1240071
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 28-09-2010 à 09:21:51  profilanswer
 

personne n'a tiqué qu'il faisait un ftp sur 0.0.0.0 ? [:petrus75]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1240073
websat
Posté le 28-09-2010 à 09:23:04  profilanswer
 

c'est pour masquer l'ip !!!


---------------

n°1240077
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 28-09-2010 à 09:31:10  profilanswer
 

websat a écrit :

c'est pour masquer l'ip !!!


 
mon dieu [:totoz]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
 

Sujets relatifs
script shell bashscript shell pour suppression anciennes sauvegardes
Recherche chaine dans un fichier texte avec script shellLancement automatique script shell sur MinGW Windows
[shell script] Mettre des espaces entre les caractères[SHELL] Script de backup (cron) : Ameliorations ?
exécuter script shell via interface web (sécurisé si possible)[shell script] Compter des repertoires
Plus de sujets relatifs à : Script shell ftp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR