Usando mv & cp em um servidor headless (timeout do SSH interferindo?)

5

Recentemente, criei um servidor sem cabeçalho para fazer o backup de vários filmes & amp; edição de arquivos.

Eu faço o SSH no servidor e - seguindo alguns guias de práticas recomendadas que encontrei ao redor - reforçamos a segurança para que o servidor faça o auto-logoff após 5 minutos de inatividade.

Isso está criando uma dor de cabeça enquanto tento classificar e mover esses arquivos.

A emissão de mv file1 /new_directory/ pode demorar +5 min e, por isso, estou quase sem sessão iniciada no meio.

Onde vários arquivos estão envolvidos, eu voltei para descobrir que alguns arquivos parecem ter sido transferidos e outros (em um ponto aparentemente arbitrário ... ou aproximadamente o que eu acho que um tempo limite de 5 min pode ter permitido) não .

Então, minhas perguntas são:

  1. Ao emitir um comando mv , se ele for cancelado enquanto estiver incompleto, existe algum risco de perda de dados? Posso estar mais seguro usando cp ?
  2. Existe alguma maneira que eu poderia definir um cp ou mv para ir e, em seguida, certifique-se de que ele continuará mesmo depois que eu fiz logoff ou minha janela ssh fechou
  3. Existe uma maneira de fazer outras coisas enquanto está ocorrendo um mv ou cp (e, portanto, atualize meu cronômetro de contagem regressiva)
por Huw 07.05.2014 / 19:47

2 respostas

5

Não faça login como tal. Em vez disso, da sua máquina local, execute

ssh user@server mv /path/to/source /path/to/dest

Isso deve permitir que você contorne o problema.

Em uma nota mais geral, eu acredito que você está sendo um pouco paranóico aqui. Definir o tempo ocioso para 5 minutos e, em seguida, enfrentando esse tipo de problema parece bobo. Basta configurá-lo para algo mais longo e evitar o problema.

Quanto à sua primeira pergunta, mv excluirá somente os arquivos de origem se a cópia foi bem-sucedida. Conforme explicado em info mv (ênfase minha):

  

Primeiro, usa alguns dos mesmos códigos usados por 'cp -a'   para copiar os diretórios e arquivos solicitados, então ( assumindo a cópia   sucedeu ) remove os originais. Se a cópia falhar, então a parte   que foi copiado para a partição de destino é removido . Se você fosse   para copiar três diretórios de uma partição para outra e a cópia de   o primeiro diretório foi bem-sucedido, mas o segundo não, o primeiro   ser deixado na partição de destino e o segundo e terceiro seria   à esquerda na partição original.

    
O
por terdon 07.05.2014 / 19:53
3

É altamente recomendado fazer tarefas de administração de longa duração apenas com tmux ou tela (ou Xvnc se precisar graficamente). Isso protege você de desconexões de rede e permite reconectar. Você também pode usar mosh , o que é robusto contra interrupções de rede.

Se você não se importar muito com a continuação da sessão após o término do seu comando, você também poderá executá-la desanexada com nohup mv ... (final opcional com & amp; para ser imediatamente contextualizado). Você precisa monitorar sua execução com ps . Alguns shells podem desanexar um programa em execução ( disown ou não matá-los como setipt NO_HUP do zsh) ou usar um iniciador de plano de fundo como at ou cron .

    
por eckes 09.05.2014 / 05:21