Мы могли бы запустить что-то вроде
perl -E 'for (reverse 1..999){
rename( "access.log.$_", "access.log.".($_+1))}'
Ваш код не имеет смысла.
Если вы хотите перенаправить каналы stdin и stderr, используйте это:
nohup tail -f mylog.log >./messages.log 2>./errors.out
Если вы хотите, чтобы все сообщения помещались в один файл, используйте:
nohup tail -f mylog.log > all_messages.txt 2>&1
Если вы хотите дублировать сообщения, используйте:
nohup tail -f mylog.log | tee messages1 messages2...
Я думаю, вы пытаетесь получить какие-либо сообщения от самого nohup в nohup2.out, но & async завершает всю команду, и финальное перенаправление просто очистит файл.
Кажется, это работает. Я закрыл исходную оболочку, затем попытался убить -HUP и убить -INT, оба из которых выжили.
nohup >nohup2.out 2>&1 bash -c 'tail -f mylog.log > snippet.log' &