Script de shell que transfere o arquivo que leva a data de até (1 de novembro) para (1 de dezembro) do nome

Script de shell que transfere o arquivo que leva a data de até (1 de novembro) para (1 de dezembro) do nome

Ok, então esse script de shell pode parecer complicado, mas não sei como fazer isso.

então aqui está o requisito.

insira a descrição da imagem aqui

observe os arquivos acima gentilmente.

nome do arquivo são os seguintes.

Meter_20200120100846.xls
Meter_20200121100846.xls
Meter_20200122100846.xls
Meter_20200123100846.xls
Meter_20200124100846.xls
Meter_20200125100846.xls

Então, quero criar um script que copie esses arquivos para outro servidor. mas aqui está a diferença: o número no final é a data desse arquivo. então 20200120 no arquivo 1 significa que ele foi criado em 20/01/2020.

então basicamente eu quero criar um script que receba a entrada como 20/01/2020 ou 20200120para25/01/2020 ou 20200125 e copie todos os arquivos para outro servidor com o mesmo nome.

Posso usar qualquer coisa para copiar scp, sftp ou rsync no comando.

basicamente criando um script que leva de uma data a outra e copia todos os arquivos para outro servidor.

Para ser sincero, não sei se é possível fazer isso.

mas pessoal, se vocês souberem essa solução, isso realmente me ajudaria.

Obrigado e cumprimentos, Sagar Mandal

Responder1

Se bem entendi:

# Here you set the range of dates
from="20200121" 
to="20200125"
for f in *.xls; do 
  [[ $(date -d "${f:6:8}" +%s) -ge $(date -d "$from" +%s) ]] &&
  [[ $(date -d "${f:6:8}" +%s) -le $(date -d "$to" +%s) ]] &&
  echo "$f in range" || # Here your actions
  echo "$f not in range" 
done

Saída:

Meter_20200120100846.xls not in range
Meter_20200121100846.xls in range
Meter_20200122100846.xls in range
Meter_20200123100846.xls in range
Meter_20200124100846.xls in range
Meter_20200125100846.xls in range

Responder2

comando date é o que você está procurando

$ date -d 1/25/2020 +%Y%m%d
20200125

-d mm/dd/yyyy - forneça a data de entrada ao comando.

+%Y%m%d - o que você deseja que seja sua saída.

  • %Y - ano em quatro dígitos
  • %m - mês em dois dígitos
  • %d - data do mês em dois dígitos.

informação relacionada