Os comandos bash são executados de forma assíncrona quando executados pelo cronie

0

Eu tenho um script bash para fazer backup do meu pi de framboesa e, depois de executar o comando de backup, meu computador deve ser desligado. Isso funciona quando eu apenas executo o script através da linha de comando. Mas quando o cronie o executa, ele imediatamente salta para o comando shutdown em vez de esperar que o backup termine.

O que posso fazer sobre isso?

Script de shell:

#!/bin/bash

ssh [email protected] dd if=/dev/mmvblk0 bs=1M | gzip -c > /path/to/backup/$(date -I) && systemctl poweroff
    
por The Dutchman 15.04.2018 / 15:07

1 resposta

0

Parecia que ssh estava sendo executado em segundo plano. Na verdade, ssh não pôde se conectar e saiu imediatamente, o que fez com que gzip saísse imediatamente também. Mas como o código de saída de um pipeline é o código de saída do último comando (a menos que set -o pipefail seja usado antes), o comando de desligamento foi executado.

Se você quiser usar uma chave SSH que não esteja nos arquivos padrão para o respectivo usuário, precisará informar ssh sobre o arquivo de chave com a opção -i :

ssh -i /home/user/.ssh/id_rsa [email protected] dd if=/dev/mmvblk0 bs=1M
    
por 15.04.2018 / 19:58