Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Solutions pour client, serveur, serveur

16 réponses
Avatar
Sylvain
Bonjour,

j'utilise un serveur (dédié) de prod. hébergé (serveur http/ftp) et un
serveur local, les 2 sous FC7, les postes utilisateurs sont sous WinXP
(utilisateurs neuneux).

j'ai le contrôle sur les 2 serveurs - le local servant de test avant
mise en prod., il peut subir plus d'outrages que la machine distante.

je cherche à automatiser certaines opérations (par exemple transfert ftp
entre serveur local et prod.) en les déclenchant depuis des pages ouèbe
renseignées depuis les postes client.

étant peu érudi avec le système linux (et notamment ses shells) mais
n'ayant pas de problèmes avec le C, perl et le php, ma question est:

quelle peuvent être les meilleures façons de procéder pour lancer de
taches sur le serveur local (sans passer par une console distante) ?

merci pour toute piste, et n'hésitez pas à rediriger au besoin.
Sylvain.

10 réponses

1 2
Avatar
nicolas vigier
On 2008-01-03, Sylvain wrote:
Bonjour,

j'utilise un serveur (dédié) de prod. hébergé (serveur http/ftp) et un
serveur local, les 2 sous FC7, les postes utilisateurs sont sous WinXP
(utilisateurs neuneux).

j'ai le contrôle sur les 2 serveurs - le local servant de test avant
mise en prod., il peut subir plus d'outrages que la machine distante.

je cherche à automatiser certaines opérations (par exemple transfert ftp
entre serveur local et prod.) en les déclenchant depuis des pages ouèbe
renseignées depuis les postes client.


Pourquoi du ftp ? Ca ne serait pas mieux de faire du ssh ?

étant peu érudi avec le système linux (et notamment ses shells) mais
n'ayant pas de problèmes avec le C, perl et le php, ma question est:

quelle peuvent être les meilleures façons de procéder pour lancer de
taches sur le serveur local (sans passer par une console distante) ?


Ta question n'est pas très claire. Si tu veux executer des commandes en
C, perl, php ou autre langage il existe en general une fonction "system"
ou equivalent qui permet de faire ce genre de choses.

Avatar
talon
Sylvain wrote:
quelle peuvent être les meilleures façons de procéder pour lancer de
taches sur le serveur local (sans passer par une console distante) ?

merci pour toute piste, et n'hésitez pas à rediriger au besoin.
Sylvain.



ssh commande

Par exemple, pour lancer un tar sur une machine distance toto, comme
utilisateur user, et le récupérer sur la machine locale pour le détarrer

ssh tar cvfz - -C/a/b/c | tar xvfz - -C/e/f/g

La première commande tar est exécutée sur toto, sa sortie standard passe
dans le tunnel ssh, et la deuxième commande tar recoopie localement.

Voilà c'est la manière typique de faire des choses distantes si on n'a
pas autre chose qu'un accès ssh. Si on a un accés plus libre on peut
utiliser netcat (nc) pour faire le même genre de choses. Si on a besoin
de faire des manipulations non triviales sur les fichiers locaux et
distants, alors on peut utiliser la fonction réseau disponible dans gnu
awk, ou bien sûr des programmes plus lourds (perl, python, ruby, etc.)

La programmation awk marche comme ça, exemple du manuel info:

BEGIN {
Service = "/inet/tcp/0/localhost/daytime"
Service |& getline
print $0
close(Service)
}

Je trouve ça assez génial, avec un aussi petit programme. Exemple
niobe% nc -l localhost 3000
ghjgh
yuiyui
jklm
vhjgh
et dans une autre console
niobe% gawk 'BEGIN{while(1){"/inet/tcp/0/localhost/3000" |& getline;print $0}}'
ghjgh
yuiyui
jklm
vhjgh

Je pense qu'avec ces techniques tu as tout ce qu'il te faut pour
manipuler tes machines distantes.


--

Michel TALON

Avatar
Sylvain
nicolas vigier wrote on 04/01/2008 13:57:

j'utilise un serveur (dédié) de prod. hébergé (serveur http/ftp) et un
serveur local, les 2 sous FC7 [...]

Pourquoi du ftp ? Ca ne serait pas mieux de faire du ssh ?



ftp en mode download sur compte anonymous.
pour l'upload j'ai réalise une partie en SSH en effet,
une autre partie en ftp.

plus exactement j'ai aujourd'hui sur les postes clients un composant
ouèbe qui reéalise un transfert ftp vers le serveur de prod.
je veux remplacer cela par un transfert vers le serveur local (c'est
immédiat) mais je dois gérer ensuite le transfert (en lot) depuis le
local vers le prod.
pour cette opération (de synchronisation en fait), soit je pars vers une
palanquée de daemon de synchro., soit je gère une partie avec du bête
php (sur serveur local avec informations clients) et développe le petit
tool idoine pour réaliser la tache sur le serveur local (qui ferait le
transfert ftp d'une liste de fichiers); ma question est:
- comment lancer au mieux ce process ? parfois il sera court et je veux
le résultat pour construire un epage html résultat, parfois il sera
lancé en tache de fond sans retourner d'info (un log peux exister).
- est-ce que lancer un tel process depuis Apache est une bonne solution
ou bien devrais-je prévilégier des daemons quite à les secouer par des
requetes html ?

étant peu érudi avec le système linux (et notamment ses shells) mais
n'ayant pas de problèmes avec le C, perl et le php, ma question est:

quelle peuvent être les meilleures façons de procéder pour lancer de
taches sur le serveur local (sans passer par une console distante) ?


Ta question n'est pas très claire. Si tu veux executer des commandes en
C, perl, php ou autre langage il existe en general une fonction "system"
ou equivalent qui permet de faire ce genre de choses.


certes oui, n'étant pas fluent avec, j'interrogais sur la pertinence de
cette méthode.
pour ce que j'ai pu lire so far, en php les commandes 'system' et 'exec'
sont "modales" (attendent le retour d'execution du process invoqué).
ce cas ne me conviendra pas toujours.

btw, un autre moyen de poser la question serait: existe-t-il des daemons
de synchronisation "standards".

Sylvain.


Avatar
Khanh-Dang
niobe% gawk 'BEGIN{while(1){"/inet/tcp/0/localhost/3000" |& getline;print $0}}'


Bash (mais pas celui de Debian) permet de faire :
$ cat >/dev/tcp/localhost/3000

Avatar
nicolas vigier
On 2008-01-04, Khanh-Dang wrote:
niobe% gawk 'BEGIN{while(1){"/inet/tcp/0/localhost/3000" |& getline;print $0}}'


Bash (mais pas celui de Debian) permet de faire :
$ cat >/dev/tcp/localhost/3000


Tu es sur que ca depend de la version de bash ?


Avatar
Nicolas George
nicolas vigier , dans le message ,
a écrit :
Tu es sur que ca depend de la version de bash ?


Ça dépendrait de quoi, à ton avis ?

Avatar
nicolas vigier
On 2008-01-04, Nicolas George <nicolas$ wrote:
nicolas vigier , dans le message ,
a écrit :
Tu es sur que ca depend de la version de bash ?


Ça dépendrait de quoi, à ton avis ?


Plutot de ce qu'on trouve dans /dev


Avatar
Nicolas George
nicolas vigier , dans le message ,
a écrit :
Plutot de ce qu'on trouve dans /dev


Eh bien ouvre la doc de bash, cherche « /dev/tcp », et tu verras que tu te
plantes.

Avatar
nicolas vigier
On 2008-01-04, Nicolas George <nicolas$ wrote:
nicolas vigier , dans le message ,
a écrit :
Plutot de ce qu'on trouve dans /dev


Eh bien ouvre la doc de bash, cherche « /dev/tcp », et tu verras que tu te
plantes.


Ah, effectivement, je me plantais.


Avatar
Michel Billaud
(Michel Talon) writes:

Sylvain wrote:
quelle peuvent être les meilleures façons de procéder pour lancer de
taches sur le serveur local (sans passer par une console distante) ?

merci pour toute piste, et n'hésitez pas à rediriger au besoin.
Sylvain.



ssh commande

Par exemple, pour lancer un tar sur une machine distance toto, comme
utilisateur user, et le récupérer sur la machine locale pour le détarrer

ssh tar cvfz - -C/a/b/c | tar xvfz - -C/e/f/g

La première commande tar est exécutée sur toto, sa sortie standard passe
dans le tunnel ssh, et la deuxième commande tar recoopie localement.


rsync -avz --delete :/a/b/c /e/f/g

fait ça beaucoup mieux, en évitant de transférer ce qui est déjà là,
en compressant ce qui passe, et en se reposant sur ssh pour le
transport de machine à machine.

Voilà c'est la manière typique de faire des choses distantes si on n'a
pas autre chose qu'un accès ssh.


Typique de ceux qui ne se tiennent pas au courant de ce qui existe :-)

Si on a un accés plus libre on peut
utiliser netcat (nc) pour faire le même genre de choses. Si on a besoin
de faire des manipulations non triviales sur les fichiers locaux et
distants, alors on peut utiliser la fonction réseau disponible dans gnu
awk, ou bien sûr des programmes plus lourds (perl, python, ruby, etc.)


MB


--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)


1 2