Eu tenho um script bash que pega um punhado de arquivos e os configura para FTP em um site que processa um dos arquivos de configuração. Estamos procurando uma maneira de fazer com que o outro arquivo seja ativado na primeira segunda-feira do mês, mas não tenho certeza de como colocar isso no script bash. Já vi coisas sobre o uso do crontab, mas a primeira parte e a última parte do script seriam exatamente as mesmas e poderiam causar problemas se tivéssemos 2 scripts diferentes.
apenas colocando uma parte do script que pretendo fazer a alteração.
#!/bin/bash
...
e_file="/tmp/tmpemail.$(date +%s).txt"
file1='/usr/local/filename1'
file2='/usr/local/filename2'
relayserver='relay-server.example.com'
#ftp info
FTP_USER='ftpuser' #not the actual FTP User Name
FTP_DEST_PATH='/'
...
echo -e "Starting Tunnel and SFTP Process"
# make ssh tunnel for access to SFTP Site
ssh -L 9022:ftp.example.com:22 serviceaccount@$relay_server -Nf >/dev/null 2&>1
proc=`ps -ef | grep "ssh -L 9022\:ftp.example.com\:22" | awk '{print $2}'`
#checks to see if the tunnel opened correctly then proceeds to push to FTP Site
if [ "${proc}" != "" ]; then
#looking for first monday, was thinking of first day but the crontab only runs on monday to friday
ifStart=`date '+%d'`
if [ $ifStart == 01 ]; then
echo -e "File 1 & File2 sent to FTP Site" >> $e_file
$SFTP_CMD -oPort=9022 -b /dev/stdin $FTP_USER@localhost << END
cd $FTP_DEST_PATH
put $file1
put $file2
bye
END
else
echo -e "file 2 sent to FTP" >> $e_file
$SFTP_CMD -oPort=9022 -b /dev/stdin $FTP_USER@localhost << END
cd $FTP_DEST_PATH
put $file2
bye
END
fi
echo "killing ssh tunnel - $proc"
kill $proc
else
...
Estou procurando ser apontado na direção certa para obter a declaração if para a primeira segunda-feira do mês em que devo comentar. Alguma ideia para contornar isso?
Nota adicionada: Este Script deve ser executado todos os dias da semana do mês para carregar os arquivos a serem processados.