Witam!
Problem pewnie banalny, niestety niełatwo mi znaleźć rozwiązanie.
Jest sobie skrypt, w którym między innymi tworzone są katalogi w oparciu o bieżącą datę
przykład
DATA=`date +%x`
DIRHOME='/home/user'
mkdir $DIRHOME/$DATA
date +%x wyświetla datę w ładnym czytelnym formacie rrrr-mm-dd
Skrypt uruchomiony z powłoki działa bez zarzutu wszystkie katalogi się tworzą wykonywane jest kopiowanie.
Pojedyncze tworzenie katalogów jak z przykładu wyżej tez bez problemowo.
Dopiero gdy skrypt umieszczany jest w cron'ie robią się cuda. Sypie błędem przy pierwszym tworzeniu katalogu:"mkdir: cannot create directory '/home/user/03/01/10' No such file or directory" błąd oczywisty tylko dlaczego tworzony ma być katalog a właściwie katalogi w takim porąbanym formacie mm/dd/rr skoro w skrypcie jest inny? Skrypty uruchamiane w cronie odpalają się pod inną powłoką ? Dodam, że na początku właściwego jest dyrektywa #!/bin/bash.
Pozdrawiam!
EDIT:
Przeprowadziłem małą próbę:
taki skrypt
#!/bin/bash
DATA=`date +%x`
echo $DATA
po uruchomieniu przez:
./data.sh
pokazuje pięknie ładnie: 2010-03-01
Jednak gdy skrypt ten zostaje uruchomiony poprzez cron`a na ekranie pojawia się: 03/01/10 ocb ? ?
EDIT2:
Radośnie stwierdzam iż problem był w zmiennej środowiskowej LANG. Cron domyślnie odpala się ze swoimi zmiennymi nawet ze swoim całym środowiskiem domyślnym co powoduje że zmienna LANG ma wartość "C".
Format daty w tym LANG`u ma postać mm/dd/rr. Do skryptu należało dodać 2 linijki jedna ustawia zmienną LANG a druga ją exportuje:
LANG=pl_PL
export LANG
Jeśli ma ktoś ciekawsze rozwiązanie zapraszam.