<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: No Belt Dev</title>
    <description>The latest articles on DEV Community by No Belt Dev (@nobeltdev).</description>
    <link>https://dev.to/nobeltdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F545042%2F3a731522-496a-4a59-a754-1ed61126b334.png</url>
      <title>DEV Community: No Belt Dev</title>
      <link>https://dev.to/nobeltdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nobeltdev"/>
    <language>en</language>
    <item>
      <title>Monitorando SQS via terminal</title>
      <dc:creator>No Belt Dev</dc:creator>
      <pubDate>Fri, 19 Feb 2021 15:27:20 +0000</pubDate>
      <link>https://dev.to/nobeltdev/monitorando-sqs-via-terminal-140m</link>
      <guid>https://dev.to/nobeltdev/monitorando-sqs-via-terminal-140m</guid>
      <description>&lt;h3&gt;
  
  
  Introdução
&lt;/h3&gt;

&lt;p&gt;Alguns de processos do &lt;a href="https://7belts.com/?utm_source=nobeltdev"&gt;7Belts&lt;/a&gt; são feitos ássincronos, utilizamos filas para realizar a transferência e mensagens. Hoje utilizamos as funções de fila do SQS da AWS.&lt;/p&gt;

&lt;p&gt;Desenvolvi um script para auxiliar na monitoria das filas, verificar o fluxo de mensagens e se a vazão delas está ocorrendo. O script funciona no terminal do linux no qual eu deixo uma aba abertar e vou observando os comportamentos da filas.&lt;/p&gt;

&lt;p&gt;O código foi postado no &lt;a href="https://github.com/joaofernandez/list-sqs-queues"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Instalar o AWS-Cli
&lt;/h3&gt;

&lt;p&gt;Primeiro passo é instalar o CLI da aws:&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html"&gt;https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Criar os arquivos de configurações
&lt;/h3&gt;

&lt;p&gt;É necessário criar os arquivos de configuração que AWS-CLI vai utilizar como credencial para ler o SQS.&lt;/p&gt;

&lt;p&gt;Precisa ter o &lt;strong&gt;ACCESS_KEY&lt;/strong&gt;, &lt;strong&gt;ACCESS_SECRET&lt;/strong&gt; e a &lt;strong&gt;REGION&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;aws configure
AWS Access Key ID &lt;span class="o"&gt;[&lt;/span&gt;None]: ACCESS_KEY
AWS Secret Access Key &lt;span class="o"&gt;[&lt;/span&gt;None]: ACCESS_SECRET
Default region name &lt;span class="o"&gt;[&lt;/span&gt;None]: REGION
Default output format &lt;span class="o"&gt;[&lt;/span&gt;None]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paths dos arquivos gerados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;~/.aws/config&lt;/li&gt;
&lt;li&gt;~/.aws/credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Configurando as filas que vão ser monitoradas
&lt;/h3&gt;

&lt;p&gt;Basta incluir a URL da fila no arquivo de configuração &lt;strong&gt;configs/queues.config&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue
https://queue.amazonaws.com/80398EXAMPLE/MyQueue
https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue
https://queue.amazonaws.com/80398EXAMPLE/TestQueue1
https://queue.amazonaws.com/80398EXAMPLE/TestQueue2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Executar
&lt;/h3&gt;

&lt;p&gt;Para executar o script basta executar o script &lt;strong&gt;view-queues.sh&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x view-queues.sh &lt;span class="c"&gt;# Caso precise a permissão de execução&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;./view-queues.sh
+-------------------------------------+---------------+
| Queue                               | MessageCount  |
+-------------------------------------+---------------+
| queue_1                             | 15            |
| queue_2                             | 0             |
| queue_3                             | 0             |
+-------------------------------------+---------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Utilizando o Watch
&lt;/h3&gt;

&lt;p&gt;Um comando auxiliar para poder monitorar é utilizar o &lt;strong&gt;watch&lt;/strong&gt; que executa um comando por períodos de tempo.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;watch &lt;span class="nt"&gt;-n&lt;/span&gt; 10 ./view-queues.sh 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A cada 10 segundos o comando ./view-queues.sh será executado automaticamente.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>sqs</category>
      <category>awscli</category>
      <category>terminal</category>
    </item>
    <item>
      <title>Aws S3  - Otimizando todas as png de um bucket</title>
      <dc:creator>No Belt Dev</dc:creator>
      <pubDate>Wed, 03 Feb 2021 17:31:10 +0000</pubDate>
      <link>https://dev.to/nobeltdev/aws-s3-otimizando-todas-as-png-de-um-bucket-54ld</link>
      <guid>https://dev.to/nobeltdev/aws-s3-otimizando-todas-as-png-de-um-bucket-54ld</guid>
      <description>&lt;h1&gt;
  
  
  Introdução
&lt;/h1&gt;

&lt;p&gt;Após seguir os passos descritos em: &lt;a href="https://dev.to/nobeltdev/otimizando-imagens-png-56la"&gt;Otimizando Imagens PNG&lt;/a&gt;. Utilizado na otimização de imagens para a aplicação do &lt;a href="https://7belts.com/?utm_source=nobeltdev" rel="noopener noreferrer"&gt;7Belts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Utilizei o CLI da AWS para poder sincronizar as imagens otimizadas e atualiza-las no bucket do S3.&lt;/p&gt;

&lt;p&gt;Para facilitar o entendimento vamos utilizar esses dados como exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Perfil: nobeltdev
  Key: SNW3KSNUNS203JSIEK30
  Secret: n+Skg/12hd0912h0hd0921hd09h10dh1dn
  BucketName: nobelt.dev.bucket
  BucketFolder: static # Pasta static onde ficam as imagens estáticas da aplicação.
  Region: us-west-2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Instalar o CLI da AWS:
&lt;/h3&gt;

&lt;p&gt;Vai ser necessário instalar o CLI da aws para poder realizar os passos que fiz para sincronizar as imagens.&lt;/p&gt;

&lt;p&gt;No meu caso fiz a instalação para a versão do Ubuntu Linux:&lt;br&gt;
&lt;a href="https://aws.amazon.com/cli/" rel="noopener noreferrer"&gt;AWS CLI&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Configurar o perfil de acesso:
&lt;/h3&gt;

&lt;p&gt;É necessário criar um perfil para o cli poder utilizar as credenciais.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#~/.aws/config&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;nobeltdev]
&lt;span class="nv"&gt;region&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;us-west-2
&lt;span class="nv"&gt;output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#~/.aws/credentials&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;nobeltdev]
&lt;span class="nv"&gt;aws_access_key_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;SNW3KSNUNS203JSIEK30
&lt;span class="nv"&gt;aws_secret_access_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;n+Skg/12hd0912h0hd0921hd09h10dh1dn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Selecionando um arquivo ou pasta do Bucket
&lt;/h2&gt;

&lt;p&gt;O comando do aws cli utilizado para copiar um arquivo, de qualquer origem e destino, podendo ser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Origem de um bucket para outro bucket;&lt;/li&gt;
&lt;li&gt;De um bucket para outro bucket;&lt;/li&gt;
&lt;li&gt;De bucket para um destino local.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-objects-copy" rel="noopener noreferrer"&gt;Documentação com maiores detalhamentos do comando cp&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;aws s3 &lt;span class="nb"&gt;cp&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &amp;lt;target&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--options&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;aws s3 &lt;span class="nb"&gt;cp &lt;/span&gt;s3://nobelt.dev.bucket/folder /local/anypath/static/ &lt;span class="nt"&gt;--recursive&lt;/span&gt; &lt;span class="nt"&gt;--profile&lt;/span&gt; nobelt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Otimização dos arquivos PNG
&lt;/h3&gt;

&lt;p&gt;Para otimizar as imagens utilizei 2 cli:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;optipng: Otimiza um png sem perder nenhuma informação;&lt;/li&gt;
&lt;li&gt;pngnq - Quantiza imagens em PNG em formato 8 bit RGBA.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Script de otimização
&lt;/h3&gt;

&lt;p&gt;Criei o script optimize-png.sh que recebe como parâmetro um pasta que possuí imagens &lt;em&gt;png&lt;/em&gt; e vai otimiza-los reduzindo seus tamanhos sem quase nenhum efeito.&lt;br&gt;
&lt;em&gt;O script também irá varrer todos os arquivos &lt;em&gt;png&lt;/em&gt; das subpastas.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# optimize-png.sh&lt;/span&gt;
&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Error: Necessario informar um path contendo imagens png!"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;exit &lt;/span&gt;1&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;fi
&lt;/span&gt;pngnq &lt;span class="si"&gt;$(&lt;/span&gt;find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nt"&gt;-temp&lt;/span&gt;.png  &lt;span class="c"&gt;# Realiza a quantização&lt;/span&gt;
&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\-&lt;/span&gt;&lt;span class="s2"&gt;temp.png"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Remove os antigos arquivos&lt;/span&gt;
find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\-&lt;/span&gt;&lt;span class="s2"&gt;temp.png"&lt;/span&gt; | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s1"&gt;'-temp.png'&lt;/span&gt; &lt;span class="s1"&gt;'{print "mv "$1"-temp.png "$1".png"}'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; temp-script.sh &lt;span class="c"&gt;# Cria um script temporário que removerá os sufixo "-temp"&lt;/span&gt;
sh temp-script.sh &lt;span class="c"&gt;# Executa o script temporário&lt;/span&gt;
&lt;span class="nb"&gt;rm &lt;/span&gt;temp-script.sh &lt;span class="c"&gt;# Remove o script temporário&lt;/span&gt;
optipng &lt;span class="si"&gt;$(&lt;/span&gt;find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Otimiza o resultado&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplo de resultado
&lt;/h3&gt;

&lt;p&gt;Exemplo real da aplicação do script. Utilizo ele na pasta &lt;em&gt;static&lt;/em&gt; que guardam as imagens utilizadas numa aplicação web:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fddz7f1amo7c2t078gvjq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fddz7f1amo7c2t078gvjq.png" alt="Resultado da aplicação do script"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O resultado foi a redução de 2.7Mb -&amp;gt; 1.2Mb, redução de 44% do tamanho total.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sincronização para o S3
&lt;/h3&gt;

&lt;p&gt;E para finalmente atualizar os arquivos no S3 basta utilizar o comando do Aws cli:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;aws s3 &lt;span class="nb"&gt;sync&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &amp;lt;target&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--options&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;aws s3 &lt;span class="nb"&gt;sync&lt;/span&gt; ./static s3://nobelt.dev.bucket/static/ &lt;span class="nt"&gt;--profile&lt;/span&gt; nobeltdev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>aws</category>
      <category>s3</category>
      <category>otimizar</category>
      <category>png</category>
    </item>
    <item>
      <title>Otimizando Imagens PNG</title>
      <dc:creator>No Belt Dev</dc:creator>
      <pubDate>Sat, 16 Jan 2021 17:47:00 +0000</pubDate>
      <link>https://dev.to/nobeltdev/otimizando-imagens-png-56la</link>
      <guid>https://dev.to/nobeltdev/otimizando-imagens-png-56la</guid>
      <description>&lt;h3&gt;
  
  
  Introdução
&lt;/h3&gt;

&lt;p&gt;Uma demanda que surgiu no &lt;a href="https://7belts.com/?utm_source=nobeltdev"&gt;7Belts&lt;/a&gt; foi da otimização e redução de tamanho das imagens, que são armazenadas na AWS S3, para melhorar a velocidade de renderização da aplicação e melhorar a experiência do usuário.&lt;/p&gt;

&lt;p&gt;O optimize-png-images é um script bash utilizado em sistema unix para compactar imagens png sem quase perder a qualidade da imagem original.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/joaofernandez/optimize-png-images"&gt;Github - Optimize Png Images&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Otimização dos arquivos PNG
&lt;/h3&gt;

&lt;p&gt;Para otimizar as imagens utilizei 2 cli:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;optipng - Otimiza um png sem perder nenhuma informação;&lt;/li&gt;
&lt;li&gt;pngnq - Quantiza imagens em PNG em formato 8 bit RGBA.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Script de otimização
&lt;/h3&gt;

&lt;p&gt;Criei o script optimize-png.sh que recebe como parâmetro um pasta que possuí imagens &lt;em&gt;png&lt;/em&gt; e vai otimiza-los reduzindo seus tamanhos sem quase nenhum efeito.&lt;br&gt;
&lt;em&gt;O script também irá varrer todos os arquivos &lt;em&gt;png&lt;/em&gt; das subpastas.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# optimize-png-images.sh&lt;/span&gt;
&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Error: Necessário informar um path contendo imagens png!"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;exit &lt;/span&gt;1&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;fi
&lt;/span&gt;pngnq &lt;span class="si"&gt;$(&lt;/span&gt;find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nt"&gt;-temp&lt;/span&gt;.png  &lt;span class="c"&gt;# Realiza a quantização&lt;/span&gt;
&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\-&lt;/span&gt;&lt;span class="s2"&gt;temp.png"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Remove os antigos arquivos&lt;/span&gt;
find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\-&lt;/span&gt;&lt;span class="s2"&gt;temp.png"&lt;/span&gt; | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s1"&gt;'-temp.png'&lt;/span&gt; &lt;span class="s1"&gt;'{print "mv "$1"-temp.png "$1".png"}'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; temp-script.sh &lt;span class="c"&gt;# Cria um script temporário que removerá os sufixo "-temp"&lt;/span&gt;
sh temp-script.sh &lt;span class="c"&gt;# Executa o script temporário&lt;/span&gt;
&lt;span class="nb"&gt;rm &lt;/span&gt;temp-script.sh &lt;span class="c"&gt;# Remove o script temporário&lt;/span&gt;
optipng &lt;span class="si"&gt;$(&lt;/span&gt;find &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s1"&gt;'*.png'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Otimiza o resultado&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplo de resultado
&lt;/h3&gt;

&lt;p&gt;Exemplo real da aplicação do script. Utilizo ele na pasta &lt;em&gt;static&lt;/em&gt; que guardam as imagens utilizadas numa aplicação web:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N3NMlNgd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ddz7f1amo7c2t078gvjq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N3NMlNgd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ddz7f1amo7c2t078gvjq.png" alt="Resultado da aplicação do script"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O resultado foi a redução de 2.7Mb -&amp;gt; 1.2Mb, redução de 44% do tamanho total.&lt;/p&gt;

</description>
      <category>otimizacao</category>
      <category>imagem</category>
      <category>png</category>
      <category>tamanho</category>
    </item>
  </channel>
</rss>
