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?