Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.
nombre réponses : 25

#0 Re : -1 »  Ubuntu en entreprise: svp laissez vos témoignages de migrations ici ! » Le 17/09/2014, à 08:34

Tomzz
Réponses : 135

Bonjour,
Juste un argument pour:

nous avons bien encore un PC avec Windows 2000

Quelque soit la version de Windows proposée (Vista, Seven ou 8) ça lui amènerai pas mal de changement d'habitudes de toutes façons.
Lors d'un changement de PC depuis XP, Vista, Seven ou 8 proposer à l'utilisateur de tester sur un portable Windows 8 avec metro (la tuile) et Ubuntu pourrai permettre une migration "volontaire"

#1 -1 »  [Résolu] lftp Limiter nb de tentatives de connexions » Le 15/08/2014, à 11:59

Tomzz
Réponses : 3

Bonjour,
Je cherche à limiter le nombre d'essais de connexion de lftp dans un script tout en gardant la configuration par défaut (essais illimités) lorsque lftp est utilisé en dehors de ce script.

J'obtient cette limitation en ajoutant le paramètre

set net:max-retries 2

dans le fichier /etc/lftp.conf.
Mais si je fais ça la limitation à 3 essais s'applique à tout les usages de lftp, dans mon script, dans le terminal ou dans tout autre script, hors je veux la limiter à mon script.

J'ai essayé de faire:

lftp --sysconfdir="/chemin/lftp-perso.conf" ftp://user:mot_de_passe@ftp.server.fr -e "put -O / $HOME/bla.zip; quit"

Pour charger un fichier de conf alternatif, mais j'ai l'erreur:

lftp : l'option « --sysconfdir=/chemin/lftp-perso.conf » n'est pas reconnue
Essayez « lftp --help » pour plus d'informations

Y a-t'il un moyen de limiter le nombre de tentatives directement dans la commande, soit en chargeant un fichier de config alternatif, soit, mieux, avec un paramètre qui limite directement le nombre d'essais de connexion ?

#2 Re : -1 »  [Résolu] lftp Limiter nb de tentatives de connexions » Le 18/08/2014, à 00:16

Tomzz
Réponses : 3

Bonsoir,
Merci pour ta réponse serged, je vais tester ça plus tard dans la semaine.

#3 Re : -1 »  [Résolu] lftp Limiter nb de tentatives de connexions » Le 05/09/2014, à 21:57

Tomzz
Réponses : 3

Bonsoir,
J'ai finalement trouvé la solution:
la configuration peut être ajoutée directement dans les commandes ftp, ce qui donne:

lftp ftp://user:mot_de_passe@ftp.server.fr -e "set net:max-retries 2; put -O / $HOME/bla.zip; quit"

#4 -1 »  [Résolu] Petit problème sed » Le 26/08/2014, à 09:25

Tomzz
Réponses : 10

Bonjour,
J'ai un petit soucis avec la commande sed.
J'ai un fichier texte qui ressemble à ce qui suit:

bla, bla....<br>Prix de 200 € incluant la TVA de 20% payée par l'acquéreur<br>mon texte nom, prénom autre texte.

Où 200 €, 20%, nom et prénom sont variables.

dans l'espoir d'obtenir:

bla, bla....

Je fais:

sed -i 's/<br>mon texte.*,.*autre texte\.//g' "${rept1}/poliris/annonces.csv"
			sed -i 's/<br>Prix de.*incluant la TVA de.*payée.*acquéreur//g' "${rept1}/poliris/annonces.csv"

La première commande marche, mais pas la seconde et j'obtiens:

bla, bla....<br>Prix de 200 € incluant la TVA de 20% payée par l'acquéreur

200 €, 20%, nom et prénom
Je soupçonne les apostrophes et ou le % d'être la cause du problème, mais j'ai beau tourner et retourner je ne trouve pas.
Une idée?

#5 Re : -1 »  [Résolu] Petit problème sed » Le 26/08/2014, à 11:56

Tomzz
Réponses : 10

Merci pour vos réponses.
@pingouinux:
Oui, les deux commandes s’enchaînent dans le script, elles pourraient être regroupée en une seule, mais je les ai séparées pour essayer de trouver ce qui bloquait et parce que ailleurs dans le script, en fonction de diverses conditions je peux avoir à conserver l'une ou l'autre partie de ce texte.

Je veux juste supprimer toute cette partie:

<br>Prix de 200 € incluant la TVA de 20% payée par l'acquéreur<br>mon texte nom, prénom autre texte.

Où 200 €, 20%, nom et prénom sont variable.

@tiramiseb
Je ne peux pas faire:

sed -i 's/<br>.*$//' "${rept1}/poliris/annonces.csv"

Parce que je peux rencontrer d'autres <br>, de plus, le texte bla,bla... avant est une description qui fait jusqu’à 4000 caractères qui est rentrée par divers utilisateurs.
Je prend donc le maximum d’éléments de l'expression à supprimer afin de réduire les risques de rencontrer le texte que je veux supprimer ailleurs dans la description.

#6 Re : -1 »  [Résolu] Petit problème sed » Le 26/08/2014, à 12:07

Tomzz
Réponses : 10

Je ne peux/veux pas supprimer les accents, ils font parti intégrante du texte.
Le texte est destiné à être lu.

#7 Re : -1 »  [Résolu] Petit problème sed » Le 26/08/2014, à 12:16

Tomzz
Réponses : 10

Ok, je teste.
Mais tu as mis le doigt sur un truc, je converti mon fichier en WINDOWS-1252 juste avant dans le script.
Je vais reprendre tout ça pour essayer de faire la conversion utf8 > WINDOWS-1252 après ma commande sed.

#8 Re : -1 »  [Résolu] Petit problème sed » Le 26/08/2014, à 14:28

Tomzz
Réponses : 10

Merci, honte à moi, j'avais oublié que je faisais cette conversion.
Maintenant ça marche.

#9 -1 »  [Résolu/contourné] test d'exécution correcte de lftp » Le 03/08/2014, à 08:25

Tomzz
Réponses : 1

Bonjour,
Après quelques déboires résolus dans un autre post je cherche à faire un contrôle de la bonne exécution d'une commande lftp dans un script lancé par cron.

Au départ, je faisais simplement:

lftp ftp://${ftpus}:${ftpmdp}@${ftpserv} -e "mirror -e -x blog / ${rept}/catalogue/ ; quit" && transfert="OK"

et un test sur la variable transfert faisait se que je voulais.

Mais pour que cela marche avec cron, j'ai du changer ma commande en ça:

lftp ftp://${ftpus}:${ftpmdp}@${ftpserv} << EOF
mirror -e -x blog / ${rept}/catalogue/
quit 0
EOF

Et là, plus moyen de placer mon && transfert="OK

J'ai tenté d'utiliser $? mais sa valeur est toujours 0
J'ai aussi essayé un fichier log, de cette façon:

lftp ftp://${ftpus}:${ftpmdp}@${ftpserv} << EOF
mirror --verbose=1 --log=/tmp/loglftp -e -x blog / ${rept}/catalogue/
quit 0
EOF

Mais  celui-ci ne contient que les modifications effectués, si le site est déjà a jour, ou si j'ai une erreur de connexion ou si le transfert est interrompus j'obtient un fichier vide dans tous les cas.

J'ai besoin d'un test me disant que la commande lftp est bien exécuté et quelle est arrivée à sont terme.
Une idée ?

#10 Re : -1 »  [Résolu/contourné] test d'exécution correcte de lftp » Le 04/08/2014, à 00:24

Tomzz
Réponses : 1

Bonsoir,
Bon, problème résolu par contournement.
[Édit] changé l'ordre des commandes pour vérifier le succès de la synchro et pas seulement celui de la connexion.
Je crée un fichier de test avec la date unix en local.
Je synchronise.
Je le dépose sur le serveur après la synchro.
Je récupère le fichier de test sur le serveur.
Le tout dans la même session lftp.
Je vérifie si le fichier local contient la même date unix en seconde que celui fraîchement récupéré sur le serveur.
Ce qui donne:

		## On crée un fichier de test
		date +%s > "${rept1}/pro-check.txt"
		## Synchronisation du PC lors du démarrage

lftp ftp://${ftpus}:${ftpmdp}@${ftpserv} << EOF
rm ${rept}/catalogue/protege/pro-check.txt
mirror -e -x blog /js/ ${rept}/catalogue/js
put -O /protege ${rept1}/pro-check.txt
get1 -o ${rept}/catalogue/protege/pro-check.txt /protege/pro-check.txt
quit 0
EOF

		if [ "$(cat ${rept}/catalogue/protege/pro-check.txt)" == "$(cat ${rept1}/pro-check.txt)" ]; then
			{
				transfert="OK"
				rm -f "${rept1}/pro-check.txt"
			}
		fi

#11 -1 »  [Résolu] lftp et cron » Le 01/08/2014, à 15:13

Tomzz
Réponses : 2

Bonjour,
J'ai un script qui rapatrie un site internet dans un répertoire local grâce à la commande:

## Synchronisation du PC lors du démarrage
		lftp ftp://${ftpus}:${ftpmdp}@${ftpserv} -e "mirror -e -x blog / ${rept}/catalogue/ ; quit" && transfert="OK"

Si je lance le script manuellement tout va bien.
Mais si je le lance via cron grâce à  gnome-schedule j'arrive à un prompt ftp sur le site et rien ne se passe.

Si je tape ls j'ai bien la liste de mes fichiers distants, c'est comme si lftp se connectait bien mais les commandes qui suivent -e sont ignorées.

Une idée?

#12 Re : -1 »  [Résolu] lftp et cron » Le 01/08/2014, à 21:57

Tomzz
Réponses : 2

Re,

Alors le mystère s'épaissi:

Pour tenter d'y voir plus clair j'ai remplacé ma ligne lftp dans mon script par:

echo "lftp ftp://${ftpus}:${ftpmdp}@${ftpserv} -e \"mirror -e -x blog / ${rept}/catalogue/ ; quit\" && transfert=\"OK\"" > $HOME/testlftp

et en lançant mon script avec cron, dans le fichier $HOME/testlftp j'obtiens:

lftp ftp://login:mdp@ftp.monserv.fr -e "mirror -e -x blog / /home/test/repertoire/catalogue/ ; quit" && transfert="OK"

Si je copie cette ligne de code dans un terminal, tout va bien, je télécharge mon site.

Mais si je crée une tache cron avec cette même commande seule j'obtiens le même résultat que dans le premier post, à savoir, j'arrive sur un prompt ftp sur le site et rien ne se passe.

Où diable merdoie-je ???

#13 Re : -1 »  [Résolu] lftp et cron » Le 02/08/2014, à 22:40

Tomzz
Réponses : 2

Bonsoir,
J'ai trouvé, mais sans tout à fait comprendre.
Ma commande lftp fonctionne avec cron si je la change en:

lftp ftp://${ftpus}:${ftpmdp}@${ftpserv} << EOF
mirror -e -x blog / ${rept}/catalogue/
quit 0 && transfert="OK"
EOF

le EOF fait la différence mais il faut aussi veiller à ce qu'il n'y ai aucune tabulation ou espace avant chaque ligne de cette commande.

Il me reste à voir si le  && transfert="OK" va fonctionner dans ces conditions.
[edit] Au cas où ce serait utile à quelqu'un je décris ici comment j'ai contourné ce problème de test.

#14 -1 »  [Résolu]Supprimer toutes ligne précédant la ligne contenant une chaine » Le 31/07/2014, à 23:03

Tomzz
Réponses : 12

Bonsoir,

Je cherche, dans un script shell, à supprimer toutes les lignes d'un fichier précédant la ligne contenant une chaîne.
Pour être plus clair, j'ai un fichier du type:

#001#blablabla...
#002#blablabla...
#003#blablabla...
#004#blablabla...
#005#blablabla...
...

et je veux supprimer toutes les lignes précédent celle contenant #003# (en incluant la #003# si possible, sinon je m'adapterai) et donc obtenir:

#004#blablabla...
#005#blablabla...
....

Mon fichier est classé par les champs #00n# il ne peut pas y avoir de doublons mais il peut y avoir des trous dans la numérotation.
Est-ce possible avec un grep, ou éventuellement awk ?

#15 Re : -1 »  [Résolu]Supprimer toutes ligne précédant la ligne contenant une chaine » Le 01/08/2014, à 09:40

Tomzz
Réponses : 12

Bonjour,
Merci pour toutes ces réponses.
et toutes mes excuses parce que j'ai mal posé mon problème.
En fait le fichier est un CVS ou chaque ligne contient 294 champs (ou 255 selon les versions) encadrés par des "" et séparés par !#.
La position des champs et toujours la même (si 255 champs se sont les 256 à 294 qui sont ignorés).
Le n° 00n (en fait 0000n) est unique et toujours présent dans chaque ligne, mais il peut être répété 3 fois dans la même ligne et fait toujours 5 digit de long: 00001, 00002...00101...99999

Le fichier est trié par ce n°, mais il peut y avoir des trous dans la numérotation ( par ex j'ai lignes 00002 à 00010 mais pas de ligne 00001, 00005...)

Contrairement à ce que j'ai écrit plus haut, il n'est pas dans le premier champ de la ligne mais dans le second et dans les champs 112 et 175 mais j'aimerai ne m’intéresser qu'au second champs.

Un exemple réel (mais tronqué) du fichier:

"tomzz"!#"00004"!#"blabla"!#"bloblo....
"tomzz"!#"00008"!#"blabla"!#"bloblo....
"tomzz"!#"00015"!#"blabla"!#"bloblo....
"tomzz"!#"00032"!#"blabla"!#"bloblo....
"tomzz"!#"00045"!#"blabla"!#"bloblo....
"tomzz"!#"00085"!#"blabla"!#"bloblo....
"tomzz"!#"00086"!#"blabla"!#"bloblo....
"tomzz"!#"00087"!#"blabla"!#"bloblo....

Je voudrai donc, par exemple, supprimer toutes les lignes qui précèdent celle contenant !#"00045"!#, y compris la ligne !#"00045"!# si possible.

Je vais tester les solutions proposées plus haut maintenant wink

#16 Re : -1 »  [Résolu]Supprimer toutes ligne précédant la ligne contenant une chaine » Le 01/08/2014, à 10:12

Tomzz
Réponses : 12

Alors, après tests les deux commandes fonctionnent:

awk 'i;/!#"00045"!#/{i=2}' $HOME/fichier-in.csv > $HOME/fichier-out.csv

sed  '1,/!#"00045"!#/d' $HOME/fichier-in.csv > $HOME/fichier-out.csv

Le 1 dans la commande sed est intéressant car il dit à partir de quelle ligne on coupe ( si 2 je garde la première ligne et je supprime toute les suivantes jusqu'à ce que je rencontre !#"00045"!# )
Je ne vais pas m'en servir là, mais surement pour plus tard.

En revanche, pour awk, je ne comprend pas le {i=2}, je l'ai remplacé par {i=3} et ça ne fait aucune différence.

Dans l'absolu, quelle est la meilleure commande, je crois avoir lu ailleurs que sed était plus rapide que awk.

#18 -1 »  URL rewriting » Le 29/07/2014, à 22:17

Tomzz
Réponses : 5

Bonjour,
Pour un projet particulier j'ai besoin de signifier à des "crawlers" qui viennent télécharger des photos sur mon site quelles sont les photos qui ont été changées depuis sa dernière visite mais qui gardent la même URL.

La première idée était d'ajouter la date de création du fichier photo (en timestamp) en paramètre d'URL, ce qui donnait:
http : / /www.monsite.fr/fiches/00004/00004-5.jpg?1396261776

Malheureusement, beaucoup de ces fameux "crawlers" ne prennent pas en compte les paramètre d'url (un seul le fait en fait sad )

Je pensai donc faire un URL rewriting de façon à donner à ces "crawlers" une url du type:
http : / /www .monsite.fr/fiches/00004/+1396261776+/00004-5.jpg
qui accéderai en fait à l'image située à l'url
http : / /www .monsite.fr/fiches/00004/00004-5.jpg

Je me doute que c'est assez simple mais je cherche depuis un moment et je ne parviens pas à écrire cette règle de rewriting.
Si quelqu'un peut m'aider...

Ce que j'ai tenté:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([0-9]{5})/+([0-9]*)+/([0-9]{5})-([0-9]{1}).jpg   ([0-9]{5})/([0-9]{5})-([0-9]{1}).jpg [L]

et http : / /www .monsite.fr/fiches/00004/+1396261776+/00004-5.jpg me renvoie, une erreur 404

#19 Re : -1 »  URL rewriting » Le 29/07/2014, à 22:26

Tomzz
Réponses : 5

Je n'ai pas la main sur ces "crawlers", ce sont des sites tiers.
Mais je suis presque sûr que la solution URL rewriting va fonctionner.

PS: désolé, suite à une mauvaise manip, j'ai posté un message incomplet, avant de le modifier pour le finir, c'est à celui là que tu as du répondre.

#20 Re : -1 »  URL rewriting » Le 30/07/2014, à 22:31

Tomzz
Réponses : 5

Bonsoir,
Un petit up pour dire que j'ai aussi tenté:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([0-9]{5})/([0-9]{5})-([0-9]{1}).jpg ([0-9]{5})/([0-9]*)+([0-9]{5})-([0-9]{1}).jpg [L]

en espérant envoyer des url du type:
http :  /  /www .monsite.fr/fiches/00004/1396261776+00004-5.jpg
Mais dans ce cas je n'ai plus accès du tout à mes photos.

J'avoue humblement être une bille pour ce qui est du rewriting.

#21 Re : -1 »  URL rewriting » Le 30/07/2014, à 23:04

Tomzz
Réponses : 5

Bonsoir,
Je suis finalement arrivé à un truc qui marche en faisant dans un htaccess placé dans le répertoire www .monsite.fr/fiches/:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([0-9]*)/([0-9]*)a([0-9]*)-([0-9]*).jpg $1/$3-$4.jpg [L]

J'accède maintenant à mes photos en faisant aussi bien:
http :  /  /www .monsite.fr/fiches/00004/1396261776a00004-5.jpg
que
http :  /  /www .monsite.fr/fiches/00004/00004-5.jpg

Dans le doute j'ai remplacé le + comme séparateur par un bête a, ce n'est pas joli mais seuls les "crawlers" utiliseront cette adresse.

Mais maîtrisant très mal le sujet, je ne sais pas si la règle que j'ai écrite est fiable ou si elle présente des failles.

#22 Re : -1 »  URL rewriting » Le 31/07/2014, à 21:56

Tomzz
Réponses : 5

Bonsoir,
Un petit up, si quelqu'un peu me dire si la solution du message du dessus est satisfaisante.

#23 Re : -1 »  [Résolu] Transformation XSL » Le 24/06/2014, à 13:54

Tomzz
Réponses : 9

Bonjour,
J'ai un peu avancé, je créé un fichier "base.xml", directement dans mon script, qui ressemble à ça:

<?xml version='1.0' encoding='utf-8' ?>
	<Root>
		<advert>
			<Column0>code_agence</Column0>
			<Column1>00002</Column1>
			<Column2>Vente</Column2>
			<Column3>maison/villa</Column3>
			<Column4>09100</Column4>
			<Column5>PAMIERS</Column5>
			.......
			<Column254></Column254>
		</advert>
	</Root>
</xml>

Puis je lance la commande (fichier transf.xsl en lien dans le premier post:

xsltproc -o "output.xml" "transf.xsl" "base.xml"

Je n'ai plus d'erreur mais je n'obtient qu'un fichier vide de données en sortie:

<?xml version="1.0" encoding="UTF-8"?>
<Envelope>
  <Body>
    <add_adverts/>
  </Body>
</Envelope>

Je suppose qu'il me manque quelque chose dans le fichier "base.xml" mais je ne trouve pas quoi.

Sinon, pour ça:

Zakhar a écrit :

Si tes données étaient modélisées "comme il faut" au lieu de s'appeler "Column130" elles s'appelleraient "Type_Habitat".

Ce n'est peut-être pas un mauvais choix dans la mesure ou ce nommage n'est utilisé que dans le fichier xml intermédiaire entre le fichier Poliris (CSV) et le fichier XML final qui lui va utiliser un nommage de champs différent suivant le site auquel il est destiné.

#24 Re : -1 »  [Résolu] Transformation XSL » Le 25/06/2014, à 21:55

Tomzz
Réponses : 9

MERCI Zakhar !!!!
Ça marche!!!

Bon, maintenant que ça marche je n'ai plus qu'à comprendre comment big_smile

Enfin comment faire plus proprement, et ça, ça va me prendre du temps.

En tous cas, un grand merci à toi.