Раппорты в лог-файл с оболочкой скрипта (linux batch) и перенаправлением - PullRequest
0 голосов
/ 19 марта 2010

Пожалуйста, помогите !!! ;)
У меня проблема с этим кодом в командном файле (Linux):


Mil=`date +"%Y%m%d%H%M%S"`  
batch=`echo "${DatMusic}"`  
TabimportEnteteMusic="importentetemusic.dat"  
{  
    grep '^ENTETE' ${IMPORT}/${DatMusic} > ${IMPORT}/$TabimportEnteteMusic  
    mysql -u basemine --password="basemine" -D basemine -e "delete from importmusic;"  
    mysql -u basemine --password="basemine" -D basemine -e "delete from importentetemusic;"  
} >> $TRACES/batch/$Mil.$batch.log 2>&1 

Когда я запускаю этот пакет, его ответ:


/home/mmoine/sgbd_mysql/batch/importMusic.sh: line 51: /batch/20100319160018.afce01aa.cr.log: Aucun fichier ou répertoire de ce type  

______ (по-английски, я полагаю: "Файлы или каталог не найдены")

Итак, пожалуйста, как я могу поместить все сгенерированные сообщения в этот файл журнала?

Спасибо за ваши ответы.
Извините за мой английский;)

Ответы [ 3 ]

2 голосов
/ 19 марта 2010

вы должны определить вашу TRACES переменную. Кроме того, по возможности используйте $() вместо кавычек.

TRACES="something here"
Mil=$(date +"%Y%m%d%H%M%S")
batch="${DatMusic}"
TabimportEnteteMusic="importentetemusic.dat"
{
    grep '^ENTETE' "${IMPORT}/${DatMusic}" > "${IMPORT}/$TabimportEnteteMusic"
    mysql -u basemine --password="basemine" -D basemine -e "delete from importmusic;"
    mysql -u basemine --password="basemine" -D basemine -e "delete from importentetemusic;"
} >> $TRACES/batch/${Mil}.${batch}.log 2>&1
1 голос
/ 19 марта 2010

Сообщение об ошибке говорит о файле /batch/20100319160018.afce01aa.cr.log.

Это означает, что $ TRACES / batch / $ {Mil}. $ {Batch} .log заменяется /batch/20100319160018.afce01aa.cr.log

Это означает, что переменная $ TRACES не может быть определена в том месте, где вы ее используете (событие, если вы повторяете сто раз «$ TRACE является переменной окружения и определено»).

Попробуйте

echo "\$TRACES $TRACES"
0 голосов
/ 19 марта 2010

$TRACES/batch/$Mil.$batch.log становится /batch/20100319160018.afce01aa.cr.log, поэтому я думаю, $TRACES не определено.

Я думаю, что каталог /batch не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...