O MOTD personalizado não é atualizado até que os scripts terminem

1

Recentemente, comprei um pequeno servidor e dei algumas contas de amigos. Todos eles têm suas próprias páginas da Web em ~/public_html usando lighttpd , então escrevi um script para fazer backup do diretório public_html de todos os usuários. Eu tenho o script no meu .profile para que ele seja executado toda vez que eu fizer login e, em seguida, fazer backup dos dados para o meu laptop. Quando o script inicia, ele escreve "PROCESSANDO" em um arquivo de log.

Eu também tenho um script bash personalizado em /etc/update-motd.d/ que executa um script python para exibir quando o backup mais recente foi concluído no MOTD para cada usuário. Se o arquivo de log diz "PROCESSANDO", no entanto, ele deve exibir isso em vez do tempo passado desde o último backup. No entanto, isso não é o que realmente acontece. Se eu ssh entrar de um terminal e meu script de backup for iniciado, em seguida, ssh de um segundo terminal, o MOTD ainda exibe o tempo desde o último backup. Um cat da linha de comando no segundo shell mostra que o arquivo de log realmente contém "PROCESSING".

Em seguida, adicionei um timestamp ao meu último script de backup para que a hora atual seja exibida no MOTD. Isso me levou a descobrir que o MOTD não é atualizado enquanto meu script de backup está sendo executado. Assim que meu script de backup terminar de executar, o registro de data e hora no MOTD será atualizado novamente.

Então, minha pergunta é por que o MOTD não atualizaria em uma segunda sessão ssh até que um script do meu .profile termine de ser executado na primeira sessão?

    
por TheSchwa 25.10.2014 / 05:43

0 respostas