Não há absolutamente nenhum indicador que mostra se você tem uma conexão com a Internet ou não. Isso porque você sempre se conecta a algum tipo de gateway (roteador, modem, ...) que configura a conexão com o seu ISP. Portanto, para ter certeza se você está online ou não, você deve verificar a conexão fazendo o ping ou construindo uma conexão HTTP (usando curl
, por exemplo) e verificando o resultado. Mas esteja avisado: uma resposta de ping não significa que você pode ter uma conexão HTTP. E receber uma resposta HTTP não significa que você pode navegar na web. Você sempre tem que verificar a resposta.
Você pode ter certeza de ter uma conexão com a Internet se souber a resposta esperada. Por exemplo, você pode analisar sites como link para um endereço IP usando expressões regulares. Se sua expressão regular estiver correta e não encontrar um endereço IP, você não terá conexão com a Internet.
Resposta curta: Escreva um script no qual você verifica a conexão com a internet (como descrito acima). No sucesso você executa os comandos que você quer e define um sinalizador para o qual você está pronto hoje (apenas crie um arquivo e verifique a existência), na falha você não faz nada. Faça desse script um cronjob.