Я пытаюсь добавить к записям журнала метку времени, но сгенерированные метки времени, похоже, не меняются со временем:
#!/bin/sh
NOW=$(date +"%Y-%m-%d %H:%M:%S")
echo "$NOW Logging something"
sleep 2
echo "$NOW Logging something else"
Выход для:
2012-03-02 12:32:49 Logging something
2012-03-02 12:32:49 Logging something else
Кто-нибудь знает, что я делаю не так?
Сравните и сравните с:
echo "`date +"%Y-%m-%d %H:%M:%S"` Logging something" sleep 2 echo "`date +"%Y-%m-%d %H:%M:%S"` Logging something else"
В вашей версии СЕЙЧАС определяется один раз как это время и остается таким до конца выполнения скрипта. Выше дата генерируется во время «эха».
Если вы не хотите добавлять дату каждый раз, вы можете использовать функцию:
#!/bin/sh logtest() { echo "`date +"%Y-%m-%d %H:%M:%S"` $1" } logtest "Logging something" sleep 2 logtest "Logging something else"
Что не так со старым добрым logger
команда? :)
#!/bin/sh
logger -t yourprogram Hello, this is a message
sleep 2
logger -t yourprogram Hello, this is another message
Регистратор также позволяет использовать приоритеты системного журнала.
Вы создаете временную метку только один раз, когда объявляете переменную. Он не будет обновляться автоматически.
Попробуй это:
echo `date +"%Y-%m-%d %H:%M:%S"` "Logging something"