Necessidade :

                      Preciso gera em arquivo Excel todos os cadastros na data de ontem.

Problemas :

                   O campo data foi definido como TIMESTAMP

                  Estou utilizando o Mysql 5.6.xxx e este ao executar instrucoes mysql na linha de comando recebo a mensagem :

 

Warning: Using a password on the command line interface can be insecure.

 

Soluções :

                    Utilize a função CURDATE() 

 mysql -u <<USUARIO_LEITURA>>  -p'<<SENHA USUARIO>>' -B '<<BASE DE DADOS>>' -e "SELECT * FROM <<TABELA>> WHERE <<CAMPO_DATA>> >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND <<CAMPO_DATA>>< CURDATE() ORDER BY <<TABELA>>.<<CAMPO_DATA>> ASC" >/<<DIRETORIO MAPEADO>>/<<SUB_DIRETORIO>>/<<NOME_ARQUIVO_A_SER_CRIADO_>>$(date +%d%m%Y).xls

 Outro método para exportar com uma boa dica = §

 

mysql -u <<usuario>>  -p'<<senha>>' -B '<<Base>>' -e  "SELECT * FROM  <<tabela>>" | sed 's/\t/§/g' >/<<diretorio_exp>>/<<arquivo_destino_diario>>$(date +%d%m%Y).txt

 

              

 

 

 

Crie um arquivo exemplo : teste.sh (chmod +x teste.sh ) e coloque no crontab para executar este arquivo..

 

 

 

PS {

Não esqueça de editar ocrontab -e

E depois reiniciar o crontab : 

                                            systemctl stop crond.service

                                            systemctl start crond.service

 


 

OBSERVAÇÕES :

 

 

O Sed é um editor de textos não interativo. Vem do inglês [S]tream [ED]itor, ou seja, editor de fluxos de texto. 

Exemplo :

                 Troca TODAS ocorrências da palavra “peixe”, “galinha”, “camila” pela palavra “comida”

                 sed 's/peixe\|eric\|galinha/comida/g' arquivo.txt

 

Link com vários exemplos : http://terminalroot.com.br/2015/07/30-exemplos-do-comando-sed-com-regex.html 

 

O COMANDO ICONV : 

 

Mas agora preciso mudar a codificação do arquivo gerado na exportação, logo...:

 

CONV - CONVERTENDO A CODIFICAÇÃO DE ARQUIVOS NO GNU/LINUX 

 

 iconv -f "UTF-8" -t  "windows-1252" snc_UTF_8.csv -o snc_windows_1252.csv

 

Veja o link   https://www.vivaolinux.com.br/dica/iconv-Convertendo-a-codificacao-de-arquivos-no-GNULinux lá bem descrito  :

Por padrão, quando um arquivo de texto é criado no GNU/Linux, ele terá a codificação UTF-8. 

Ocorre, porém, que se o arquivo de texto for criado no Microsoft Windows, ele terá a codificação ISO-8859-1. 

A exceção existe quando se tratar de um arquivo que não contenha qualquer caractere especial, como um caractere acentuado, ou uma cedilha "ç", por exemplo. Neste caso, em ambas as plataformas, o arquivo será criado com a codificação ASCII. 

 

Exemplo sintaxe :

 

 iconv -f "UTF-8" -t  "windows-1252" <<arquivo_original>>_UTF_8.csv -o <<arquivo_novo_recodificado>>_windows_1252.csv