Добавьте текущую метку времени на имени файлов от фоновой команды выполнения

Следующее является командой, которую я использовал в сценарии удара, и это выполняется на фоне:

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" это - текущая метка времени.

Вышеупомянутая команда работает на фоне:

Таким образом, как я могу сделать это?

4
задан 8 April 2014 в 20:59

1 ответ

Является ли команда фоном или не не важна, все, что необходимо сделать, добавляет вывод 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 для различных форматов, которые Вы можете иметь.

4
ответ дан 17 November 2019 в 14:46

Другие вопросы по тегам:

Похожие вопросы: