Problème avec crontab

Ici vous trouverez comment modifier les fichiers de configuration, mais aussi, pourquoi pas des applis comme apache, vsftp, samba et autres...

Modérateur : Francois

Avatar de l’utilisateur
zeb
Raspinaute
Messages : 247
Enregistré le : ven. 19 sept. 2014 11:04

P***** de Ouindoz

Messagepar zeb » jeu. 21 sept. 2017 14:22

Il y a fort à parier que tu as des \xOD (ou ^M) au bout de chaque ligne.

Alors tu arrêtes tout de suite :
  • d'utiliser Windows
  • de modifier des scripts avec mc en binaire !!!!!!
  • de ne pas connaître la commande dos2unix

Quand tu n'utiliseras plus Windows, tu n'auras plus besoin de dos2unix.
Alors tu peux d'ores et déjà remplacer cette commande par un ptit uniligne perl :

Code : Tout sélectionner

perl -pie 's/\r\n/\n/'


;)
Dans mon panier : rpi1A+ : »:: »:: | rpi1B : »:: »:: | rpi1B+ : »:: »:: | rpi2B : »:: »:: | rpi3B : »:: »:: | rpi0 : »::

Bud Spencer
Raspinaute
Messages : 306
Enregistré le : lun. 15 août 2016 21:38

Re: Problème avec crontab

Messagepar Bud Spencer » jeu. 21 sept. 2017 17:43

Pas besoin d'arrêter Windows, ni de modifier du code en binaire, ni d'utiliser la commande dos2unix ou n'importe quelle autre.
A quelque rare exceptions, tous les éditeurs de code ou de texte sous Windows savent écrire des fichiers au format unix.

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 10:08

Re: Problème avec crontab

Messagepar Ferois » jeu. 21 sept. 2017 19:06

Bud Spencer a écrit :Pas besoin d'arrêter Windows, ni de modifier du code en binaire, ni d'utiliser la commande dos2unix ou n'importe quelle autre.

Tout à fait d'accord !
Une solution simple pour moi : sur le Rasberry, j'édite le programme avec IDLE et je l'e sauve aussi sec, tout propre :D

Bud Spencer
Raspinaute
Messages : 306
Enregistré le : lun. 15 août 2016 21:38

Re: Problème avec crontab

Messagepar Bud Spencer » jeu. 21 sept. 2017 19:57

Les éditeurs de code ou de texte gratos ne manquent pas sous Windows. Visual Studio, VS Code, Geany, Vim, Notepad++, PSPad, CodeWriter (W10) et j’en passe. Tous savent générer/convertir du format win/mac/unix dans pratiquement tous les types d’encodages. On peut aussi utiliser powershell et même Word si on veut( encore qu'il faut vraiment pas être totalement cuit pour coder avec un traitement texte mais bon ...). IDLE, je n’utilise pas (faut quand même pas déconner non plus :lol: …). Sinon, avec les dernières versions Windows on a aussi la solution ‘immersion pingouin totale’ que l’on peut résoudre par une simple commande du genre bash -c nano nomfichier et là le problème ne se pose même plus ;)
bash_nano.png
bash_nano.png (11.46 Kio) Vu 266 fois

Avatar de l’utilisateur
zeb
Raspinaute
Messages : 247
Enregistré le : ven. 19 sept. 2014 11:04

Re: Problème avec crontab

Messagepar zeb » ven. 22 sept. 2017 11:05

[prosélytisme=on]
Autre solution : lâcher Fenêtres de M. Portail et passer en full Linux
:ugeek: :ugeek: :ugeek: :ugeek: :ugeek: :ugeek: :ugeek: :ugeek:
[/prosélytisme]

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

Perso, dans la guerre des éditeurs, je suis du côté obscur : vi bien-sûr.
Mais de plus en plus, j'utilise un outil non libre : Sublime Text.
Autant sous Linux que sous..... :oops: je ne vais quand même pas vous avouer que j'ai une machine qui n'est pas sous (?:linu|uni)x !
Dans mon panier : rpi1A+ : »:: »:: | rpi1B : »:: »:: | rpi1B+ : »:: »:: | rpi2B : »:: »:: | rpi3B : »:: »:: | rpi0 : »::

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 10:08

Re: Problème avec crontab

Messagepar Ferois » ven. 22 sept. 2017 11:55

zeb a écrit :P***** de Ouindoz

Putain de shell plutôt, incapable de reconnaître une fin de ligne !
Le gars qui a écris le programme, avait-il une bonne raison ?

Bud Spencer
Raspinaute
Messages : 306
Enregistré le : lun. 15 août 2016 21:38

Re: Problème avec crontab

Messagepar Bud Spencer » ven. 22 sept. 2017 14:02

zeb a écrit :[prosélytisme=on]
Autre solution : lâcher Fenêtres de M. Portail et passer en full Linux
:ugeek: :ugeek: :ugeek: :ugeek: :ugeek: :ugeek: :ugeek: :ugeek:
[/prosélytisme]

[Eclectisme=on]
Autre solution : Découvrir et profiter de la force de convergence des outils moderne pour ne pas rester ou sombrer dans l’obscurantisme ;)
[/Eclectisme]


Ferois a écrit :Putain de shell plutôt, incapable de reconnaître une fin de ligne !
Le gars qui a écris le programme, avait-il une bonne raison ?

Chaque système a ses propriétés. C’est comme ça et a vrai dire ce n’est pas vraiment un problème. L’important c’est juste de le savoir et de savoir aussi que tous les systèmes savent s’adapter aux propriétés des autres.

Avatar de l’utilisateur
zeb
Raspinaute
Messages : 247
Enregistré le : ven. 19 sept. 2014 11:04

Re: Problème avec crontab

Messagepar zeb » ven. 22 sept. 2017 14:50

@Bud ;) Je ne suis pas sectaire, j'ai aussi du BSD ! :D

@Ferois, c'est bizarre, ça. A moins de l'avoir téléchargé directement directement.
Un copier/coller d'un site vers ton éditeur de texte ne devrait pas avoir embarqué de caractères en trop.

Bud Spencer a écrit :L’important c’est [..] de [..] savoir

Bud a bien raison.
Voici l'histoire.

Les machines à écrire ont une sonnette en bout de ligne, et leur mécanique de changement de ligne a un levier, qui lorsqu'on le tire à fond vers la gauche, fait revenir le chariot au début, et fait tourner le rouleau d'une ligne.

Les premières imprimantes étaient des machines à écrire automatisées.
Pour imprimer à la ligne, on envoyait deux ordres ; Carriage Return (retour du chariot) et Line Feed (une ligne de plus). En pratique, on pouvait écrire en gras en faisant un retour chariot sans saut de ligne, et en récrivant les mêmes caractères par dessus !

Dans la table ASCII, les 32 premiers caractères sont les caractères de contrôle. On ne peut les afficher, mais ils ont un comportement interprétable par l'écran ou l'imprimante : 9 est la tabulation, 10 la ligne de plus, 13 le retour chariot, etc.

Les systèmes UNIX ont estimés qu'un seul caractère était nécessaire pour traduire un passage à la ligne. On l'appelle New Line et il se traduit par "\n" en C. Le caractère ASCII choisi est Line Feed (LF), 10 en décimal, OA en hexadécimal, et ^J en notation caret (J est bien la dixième lettre de l'alphabet) .

Sur Mac, même réflexion. Un seul caractère devrait suffire. Las, c'est l'autre caractère ASCII qui a été choisi : Carriage Return (CR), 13, OD, ^M.
Apple se tournant vers UNIX pour fonder MacOS X, tout le monde utilise maintenant LF.

Tout le monde ? Non, il existe un système irréductible, où la simplification n'a pas été faite et où les deux caractères sont toujours utilisés.
Ce fut le choix de DOS, et cela reste le cas sur le dernier Windows. Et la séquence est Carriage Return-Line Feed, CR-LF, [13, 10], 0x0D0A, ^M^J.
Sauf en C, où le "\n" est traduit automatiquement à la compilation par "\r\n" (return, new).

Cet état est connu dès le début et c'est ainsi que UNIX se dote des commandes dos2unix et unix2dos pour passer d'un système à l'autre. Bien-sûr, DOS et suivants ignorent superbement UNIX. Par ailleurs le protocole FTP, dédié au transfert de fichiers entre différents serveurs, propose deux modes de transfert : binaire (B), avec lequel aucune transcodification n'est faite, et texte (A), avec lequel les nouvelles lignes sont transcodées.

Voilà pourquoi c'est un cas classique et pourquoi je te demandais de faire un cat -vte et d'y voir ou pas des ^M ;)
Dans mon panier : rpi1A+ : »:: »:: | rpi1B : »:: »:: | rpi1B+ : »:: »:: | rpi2B : »:: »:: | rpi3B : »:: »:: | rpi0 : »::

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 10:08

Re: Problème avec crontab

Messagepar Ferois » ven. 22 sept. 2017 19:30

zeb a écrit :@Ferois, c'est bizarre, ça. A moins de l'avoir téléchargé directement directement.
Un copier/coller d'un site vers ton éditeur de texte ne devrait pas avoir embarqué de caractères en trop.

A vrais dire, comme je gère le Rasberry via VSD, depuis un vieux portable HP de récup, je ne sais plus très bien par où est passé ce programme.
J'ai bien réussi à installer linux sur le HP, mais j'ai pour l'instant abandonné l'espoir d'y accéder.

Merci zeb pour ce cours d'histoire magistral.

zeb a écrit :Les premières imprimantes étaient des machines à écrire automatisées.

Toute ma jeunesse avec une Olivetti et ses marteaux en éventail, oui oui, connectée non seulement comme imprimante mais également comme clavier d'entrée !

zeb a écrit :Voilà pourquoi c'est un cas classique et pourquoi je te demandais de faire un cat -vte et d'y voir ou pas des ^M

Jamais trop tard :

Code : Tout sélectionner

head -1 /home/alarme/ventil.py | cat -vte
#!usr/bin/python$

J'ai bien noté le rôle des options et je saurai où retrouver cette ligne.

Artemus24
Raspinaute
Messages : 101
Enregistré le : ven. 15 sept. 2017 19:15

Re: Problème avec crontab

Messagepar Artemus24 » ven. 29 sept. 2017 10:20

Salut à tous.

Zeb a écrit :Perso, dans la guerre des éditeurs, je suis du côté obscur : vi bien-sûr.

J'utilise aussi vi, pour la simple raison que j'ai appris à développer sous UNIX avec cet éditeur de texte.
Il y avait aussi SED !

Ferroi a écrit :Putain de shell plutôt, incapable de reconnaître une fin de ligne !

La question est plutôt celle de l'harmonisation des normes des différents OS.
Hormis la compatibilité ascendante, à quoi peut encore servir aujourd'hui, la codification de ces deux caractères de contrôle ?
--> https://fr.wikipedia.org/wiki/Carriage_Return_Line_Feed

Donc au lieu de critiquer Windows, qui lui, respecte les normes, il faudrait plutôt se poser la question pourquoi Linux et Mac font différemment ?
--> windows : CR + LF
--> linux : LF
--> mac : CR

@+


Retourner vers « Les commandes Linux »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité