Shell skript není vyzvednutí soubor s hesly ...

hlasů
2

Spuštění pod skript se zdá ignorovat soubor s hesly Já to krmení. Jsem neustále výzva pro něj. Mám-li do ní vstoupit, zbytek skriptu pokračuje bez problémů, ale jak jsem to běží přes cron, opravdu musím dostat se do čtení ze souboru ... Nějaké návrhy?

#!/bin/sh
p=$(<password.txt)
set -- $p
pass_phrase=$1
destination=/var/www/d
cd /var/sl/
for FILE in *.pgp;
do
    FILENAME=${FILE%.pgp}
    gpg --passphrase $pass_phrase --output $destination/$FILENAME --decrypt $FILE
    rm -f $FILE
done
Položena 28/04/2010 v 13:06
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
1

Váš problém spočívá ve vedení 2:

p=$(<password.txt)

To, co děláte tady je spustit „prázdný příkaz“ v subshellu, ukládání svůj výstup v proměnné p. Co byste raději chcete udělat, když je spustit příkaz, který výstupy obsahu souboru s heslem k stdout. Tak:

p=$(cat <password.txt)

To bude stačit.

Odpovězeno 03/05/2010 v 20:12
zdroj uživatelem

hlasů
0

Kde je soubor heslo? cronmá jiný PATH, který může způsobit skripty chovají jinak, když se jim spustit sami.

Možným řešením jeden, dát

cd `dirname $0`

V horní části skriptu, který by cddo adresáře skriptu při jeho spuštění.

Možným řešením dva, zkuste zadat soubor přímo s absolutní cestu:

gpg --passphrase-file /some/path/password.txt -o "$destination/$FILENAME" -d "$FILE"
Odpovězeno 28/04/2010 v 17:38
zdroj uživatelem

hlasů
0

--passphraseopravdu existují? Podle manuálové tomu tak není, ale verze se může lišit.

Odpovězeno 28/04/2010 v 17:28
zdroj uživatelem

hlasů
0

Pravděpodobně budete muset zadat úplnou cestu k souboru. Nebo v cron, první cd do adresáře, který obsahuje tento soubor.

Odpovězeno 28/04/2010 v 17:22
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more