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

sudo et rsync

3 réponses
Avatar
Une Bévue
je veux écrire un script de backup utilisant rsync.
Il s'agit de sauvegarder /etc aussi ais-je besoin de faire ça via sudo.

supposons que mon script se nomme "etc2DD"

si je fais :
$ sudo etc2DD

comme etc2DD est dans mon ~/bin, il n'est pas dans le PATH quand je suis
sudoer.

je n'ai pas envie d'entrer :
$HOME/bin/etc2DD

est-ce que je peux mettre le "sudo" dans mon script ?

dans le script, la seule ligne qui a besoin d'être exécutée en tant que
sudoer est celle relative à rsync elle est du genre :

RESULT=$(/usr/bin/rsync blahblahblah)

si je mets à la place :

RESULT=$(sudo -i /usr/bin/rsync blahblahblah)

j'ai une erreur :

aucun fichier ou dossier de ce type : sudo -i /usr/bin/rsync

je ne pige pas.

3 réponses

Avatar
Une Bévue
Le 29/09/2012 13:20, Une Bévue a écrit :

RESULT=$(sudo -i /usr/bin/rsync blahblahblah)

j'ai une erreur :

aucun fichier ou dossier de ce type : sudo -i /usr/bin/rsync


ce n'est pas ce que j'avais fait, en fait, j'avais une var RSYNC='sudo
-i /usr/bin/rsync'
c'est ce que ne marche pas, par contre :
RSYNC=/usr/bin/rsync
puis dans le script :
RESULT=$(sudo -i ${RSYNC} blablahblah)

ça roule as expected...
Avatar
Lucas Levrel
Le 29 septembre 2012, Une Bévue a écrit :

Le 29/09/2012 13:20, Une Bévue a écrit :

RESULT=$(sudo -i /usr/bin/rsync blahblahblah)

j'ai une erreur :

aucun fichier ou dossier de ce type : sudo -i /usr/bin/rsync


ce n'est pas ce que j'avais fait, en fait, j'avais une var RSYNC='sudo -i
/usr/bin/rsync'



Avec les apostrophes, tu « échappes » les espaces (et peut-être les /),
donc tu essayes d'appeler la commande sudo_-i_/usr/bin/rsync . Ça
marcherait peut-être avec des guillemets (je ne suis pas très calé en
bash), mais en fait je crois que tu peux même t'en passer complètement
pour définir une variable.
rsync=sudo -i /usr/bin/rsync

c'est ce que ne marche pas, par contre :
RSYNC=/usr/bin/rsync
puis dans le script :
RESULT=$(sudo -i ${RSYNC} blablahblah)



Sinon, pour la demande initiale, ça doit se régler dans /etc/sudoers
(secure_path peut-être).

--
LL
Avatar
Une Bévue
Le 01/10/2012 11:11, Lucas Levrel a écrit :
Avec les apostrophes, tu « échappes » les espaces (et peut-être les /),
donc tu essayes d'appeler la commande sudo_-i_/usr/bin/rsync . Ça
marcherait peut-être avec des guillemets (je ne suis pas très calé en
bash), mais en fait je crois que tu peux même t'en passer complètement
pour définir une variable.
rsync=sudo -i /usr/bin/rsync



oui, c'est vrai, c'était obvié...

c'est ce que ne marche pas, par contre :
RSYNC=/usr/bin/rsync
puis dans le script :
RESULT=$(sudo -i ${RSYNC} blablahblah)



Sinon, pour la demande initiale, ça doit se régler dans /etc/sudoers
(secure_path peut-être).



oui, mais bon je ne tiens pas trop à y toucher, ma solution me suffit ...