Следующее является командой, которую я использовал в сценарии удара, и это выполняется на фоне:
sshpass -p prakash12 ssh -t -p $1 prakash@localhost './test_new_update_script.sh > /home/log/unit_update_output.log 2> /home/log/unit_update_error.log < /dev/null | echo $! > /home/log/unit_update_pids &'
Эта команда создала 3 файла во время выполнения т.е. unit_update_output.log
, unit_update_error.log
и unit_update_pids
. И распечатайте связанную информацию в этом файлы.
Я хочу добавить current timestamp
в конце каждых 3 имен файлов.
Как: unit_update_output-2014-04-08T22-15-02.log
"2014-04-08T22-15-02" это - текущая метка времени.
Вышеупомянутая команда работает на фоне:
Таким образом, как я могу сделать это?
Является ли команда фоном или не не важна, все, что необходимо сделать, добавляет вывод date
вызов к именам файлов, которые Вы создаете. Используя тот же самый синтаксис как в Вашем вопросе, Вы могли сделать:
sshpass -p prakash12 ssh -t -p $1 prakash@localhost \
'./test_new_update_script.sh > /home/log/unit_update_output.$(date '+%F-%T').log \
2> /home/log/unit_update_error.$(date '+%F-%T').log < /dev/null |
echo $! > /home/log/unit_update_pids$(date '+%F-%T') &'
прием добавляет $(date '+%F-%T').
, это возвратится (например):
$ date '+%F-%T'
2014-04-08-18:54:52
Так, команда выше создаст:
/home/log/unit_update_output.2014-04-08-18:57:02.log
/home/log/unit_update_error.2014-04-08-18:57:02.log
/home/log/unit_update_pids2014-04-08-18:57:02
Видят man date
для различных форматов, которые Вы можете иметь.