Dica rápida de como limpar o cache do Squid no PfSense 2.3.x. (versão que foi testada)
Obs: Antes de começar, veja qual é o proprietário e o grupo do diretório /var/squid/cache, pois será dada a permissão novamente a eles.

 

1 – Pare o serviço do Squid

/usr/local/etc/rc.d/squid.sh stop

 

2 – Remova o diretório do cache do squid e depois crie novamente

rm -rf /var/squid/cache/
mkdir -p /var/squid/cache/

 

3 – Altere o proprietário e o grupo para que estavam antes de apagar os diretórios:

chown proxy:proxy /var/squid/cache/
ou
chown squid:squid /var/squid/cache/

 

4 – Altere a permissão para 750:

chmod 750 /var/squid/cache/

 

5 – Reinicie o Squid:

squid -z
/usr/local/etc/rc.d/squid.sh start

Ao som de: Mamonas Assassinas – 1406

Linux é mais fácil que muita gente imagina. E essa simplicidade se torna uma ferramenta poderosa quando usada da forma certa.
Assim que comecei a usar o Linux, confesso, que usava essa simplicidade de forma não tão produtiva, pois dava certo, mas achava algumas coisas muito trabalhosas. Com o passar do tempo, fui aprendendo algumas formas mais efetivas de usar essas ferramentas.

O intuito desse post é passar algumas dicas que me ajudaram a melhorar a minha produtividade com o Linux. Todas as dicas são básicas, mas que economizam tempo e paciência.

Programas Básicos:

apt

Sei que muita gente é acostumada ao “apt-get” e acha que o “apt” é a mesma coisa, porém o “apt” vem com mais melhorias em seu código e é muito mais organizado para o usuário.

vim

Assim que você começa a usá-lo, não entende o porque as pessoas usam tanto. Até pra sair é “complicado”, tendo que digitar “:wq” para sair e salvar. Porém, algumas funcionalidades o fazem ser “amado” por tantos. Mais a frente vou colocar alguns comandos.

sl

Apenas instalem e nunca mais errem um list! Ou não!

htop

O caso do “htop” é semelhante ao “apt x apt-get”, onde seria “top x htop”. Nesse caso, a diferença é mais visível, pois a organização e as cores do htop dão uma organização melhor que a do “top”

iftop

É o “htop” para placas de redes.

iotop

É o “htop” de I/O de disco.

locate (ou mlocate)

O locate serve para pesquisar um arquivo dentro do sistema. Sim, já existe o “find”, que abordo mais a frente também, mas o locate torna a busca mais rápida, pois ele armazena a busca em um arquivo. Estando tudo indexado em um arquivo, o locate vai fazer a busca nesse arquivo e não no Hd todo, assim sendo mais rápido. Para atualizar esse arquivo basta usar o comando “updatedb”. Ele já vem por padrão no RHEL/Centos, mas na família Debian basta um “apt install mlocate”.

terminator

Depois que descobri esse emulador de terminal, consigo ter uma organização das telas dos terminais muito melhor. A forma que ele divide as telas ajuda bastante para deixar o trabalho mais efetivo, fora a sua customização.

Comandos Básicos:

Passado os programas básico (sim, lista pequena e quase óbvia), dicas de como costumo usar alguns comandos.

ps fuxa

Essa dica aprendi com o Mestre Pedro Veríssimo. O “fuxa” mostra o ps com usuário, PID, %cpu, %mem, TTY, horário do início do processo, o tempo desse processo e o comando no formato de árvore. Para saber o que cada argumento faz, leia o manual (man ps). Tente combinações que você consiga gerenciar melhor os processos rodando nos seus sistemas.

ss -a

O netstat está obsoleto a alguns anos, então essa dica é mais uma atualização. Você pode ler sobre isso nessa reportagem do site Linux Descomplicado. Sobre o assunto, estou criando coragem (e amadurecendo as ideias) para abordar isso de uma forma mais completa. “Manter velhos hábitos, mas que eu sei o que estou fazendo e meu sistemas fica estável” x “Me atualizar, utilizando novas ferramentas, aprendendo novas maneiras de gerir os sistemas, mas que não sei como é o comportamento a longo prazo”.

cd –

Comando básico que muita (mesmo) gente ignora. Serve para voltar ao diretório anterior que você estava. Favor não confundir com o “cd ..” que sobe um diretório. Exemplo: se vocês estava em “/etc/network/interfaces.d/” e foi para “/var/log/”, ao digitar “cd -” você “volta” para “/etc/network/interfaces.d/”. Caso o comando fosse “cd ..” você subiria um nível, indo para “/var/”.

cd ~

Comando que faz você voltar para o home do atual usuário. Se estiver em “/etc/network/interfaces.d/” e digitar “cd ~”, vou para “/home/bruno/”

sudo !!

Já aconteceu de você usar um comando “gigante” e quando apertou “Enter” viu que esqueceu o “sudo” no começo? Eu sei a raiva que isso gera. Aí você, no modo mais “prático”, usa a seta para cima, depois home, depois digita sudo e enter novamente. Não é isso? Era! Basta “sudo !!” e o último comando será executado como se o sudo estivesse no começo. Testa aí.

ctrl + r

Outra do Mestre Pedro Veríssimo. É uma busca dentro do history. Você vai digitando a busca e ele já mostra o comando, bastando um simples “Enter”. E cada vez que usa a combinação ctrl + r enquanto está buscando, ele vai mostrando outros resultados. Nada mais de “history | grep” quando se sabe o que quer procurar, certo?

history + !número

Mesmo com a dica acima, o history é importante. A busca serve pra quando você lembra o que foi digitado, mas e quando não se lembra? history, claro. Aí você acha o que quer, vai selecionar, copiar (ctrl + insert) e depois colar (shift + insert), né? Não mais. Digamos que o comando que você queira está listado como o 149, basta digitar !149 e o comando será executado.

Outras Dicas:

Abaixo alguns comandos precisei usar para situações diversas.

Localizar um tipo de arquivo e a partir de um certo tamanho.

Como assim? Preciso encontrar todos meus vídeos no formato AVI e com mais de 700MB:

find /home/bruno/Vídeos -type f -name “*.avi” -size “+700M” -exec ls -lah {} \;

Mas o segredo é tentar outras combinações como exemplo: arquivos maiores que 100Mb, mas menores que 200Mb:

find /home/bruno/Vídeos -type f -name “*.avi” -size “+100M” -size “-200M” -exec ls -lah {} \;

Dica boa pra quem ainda tem aquelas fotos com o nome “dsc000…”, só colocar o -iname

 

Trabalhando com diretórios em sequência.

Se você já fez “mkdir pasta01/ pasta02/ pasta03/ pasta04/”, você conseguiu o que queria, mas e se for 50 pastas? Vai fazer um shell script com alguma estrutura de laço para repetir até o 50? Pode ser, mas também dá um trabalho. E que tal um comando só?

mkdir -p /home/bruno/pasta{1..50}

Massa, né? E se dentro dessas pastas você tenha que criar outras 10 pastas?

mkdir -p /home/bruno/pasta{1..50}/subpastas{1..10}

Agora sim, muito massa. Mas não se limite aí, pois esse comando não é exclusivo do mkdir, muito pelo contrário. Qualquer comando que trabalhe com os diretórios e arquivos, aceita esses argumentos. Um bom exemplo é apagar essas 50 pastas

rm -rf /home/bruno/pasta{1..50}

 

Criando um “Alias” da maneira certa.

Já vi muitos “tutoriais” ensinando a criar tutorial da forma certa: alias ll=’ls -lahF’, por exemplo. Mas na hora de deixar isso permanente, muita gente criar um script pra iniciar junto com o sistema e assim atribuir esse alias. Só que no linux existe um arquivos pra isso e nele já existe alguns alias e até com exemplo. Basta editar (usando o vim, né?) o arquivo .bashrc que fica no diretório home do seu usuários:

vim ~/.bashrc

Depois só salvar, fechar o terminator (claro!) e abrir novamente. o “ll” foi exemplo, pois algumas distribuições já vem com esse alias, mas você pode adicionar qualquer alias nesse arquivo. Exemplo para atualização com o usuário root:

alias atualizar=”apt update && apt -y upgrade”

Usando melhor o VIM

O VIM tem milhões de atalhos, que você pode conferir alguns aqui, mas os mais básicos parecem ser os mais ignorados:

gg = Início da primeira linha do arquivo
G = Início da última linha do arquivo
yy = Copia a linha atual do cursor
y⇑ = Copia a linha do cursor mais a linha acima
y⇓ = Copia a linha do cursor mais a linha abaixo
y20⇑ = Copia a linha do cursor mais as 20 linha acima
y20⇓ = Copia a linha do cursor mais as 20 linha abaixo
p = Cola a linha abaixo da posição do cursor
P = Cola a linha acima da posição do cursor
dd = Apaga a linha atual do cursor
d⇑ = Apaga a linha do cursor mais a linha acima
d⇓ = Apaga a linha do cursor mais a linha abaixo
d20⇑ = Apaga a linha do cursor mais as 20 linha acima
d20⇓ = Apaga a linha do cursor mais as 20 linha abaixo
u = Desfaz o último comando

Se o seu terminator (né?) está com o fundo preto, diga ao VIM isso para que ele possa mostrar tudo nas cores certas.

:set backgroud=dark

Quando se faz uma busca dentro do VIM (/termo), há algumas opções:
N = Busca o próximo termo acima da posição atual do cursor
n = Busca o próximo termo abaixo da posição atual do cursor

Para realçar o termo que foi buscado no texto:

:set hlsearch

E para remover esse realce da busca:

:nohlsearch

 

Substituição dentro do VIM

Caso queira substituir um dentro da linha onde o cursor está posicionado, basta fazer:

:s/foo/bar/g

No nosso caso, onde tiver “foo” na linha atual, será substituído por “bar”.
Caso queira no documento todo, basta adicionar % no inicio:

:%s/foo/bar/g

 

Como disse no começo, são dicas básicas, mas que me ajudam muito e espero que ajude mais pessoas.
Vou postar os sites que descobri alguns desses comandos e que (alguns) estão mais completos em suas explicações e com outros exemplos:

https://debian-handbook.info/browse/pt-BR/stable/index.html
https://www.vivaolinux.com.br/artigo/Diario-de-um-SysAdmin-1-Truques-Macetes-Atalhos-e-Comandos
https://www.vivaolinux.com.br/artigo/Diario-de-um-SysAdmin-2-Truques-Macetes-Atalhos-e-Comandos
http://michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_colorblind.png
http://vim.wikia.com/wiki/Vim_Tips_Wiki 

Ao som de: Dream Theater – Erotomania/Voices/The Silent Man (A Mind Beside Itself) – Live Scenes from New York 

O Docker Compose é uma ferramenta para executar aplicações multi-containers, conforme a documentação do site oficial do Docker (https://docs.docker.com/compose/overview/).

Imagine que você tem 4 Dockerfiles, um para cada aplicação que irá usar um container diferente. Você teria que “rodar” os 4 Dockerfiles para subir essas aplicações. Com o Docker Compose você define tudo isso em um único arquivo, o docker-compose.yml, ou seja, você cria e inicia todos os seus serviços com a configuração que você definiu para cada serviço com um único comando.

Para fazer a instalação do Docker Compose é necessário fazer o download no Github oficial do docker compose: https://github.com/docker/compose/releases . No momento dessa postagem, a versão mais atual é a v1.13.0

O comando para instalar/atualizar para essa versão é:

# curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

# chmod +x /usr/local/bin/docker-compose

 

Depois de instalado, como exemplo, vamos fazer um docker-compose.yml que irá subir 2 containers: Um container com o MySQL 5.7 e o outro container com o WordPress mais atual disponível no Docker Hub. Vamos criar um arquivo .env com as variáveis utilizadas nas configurações desses dois serviços. Lembre-se de criar um diretório para esse dois arquivos.

Nome do arquivo: docker-compose.yml

 

version: ‘3’

services:
db:
image: mysql:5.7
volumes:
– db_data:/var/lib/mysql
restart: always
env_file:
– .env
wordpress:

    depends_on:
– db
image: wordpress:latest
ports:
– “8000:80”
restart: always
env_file:
– .env
volumes:
db_data:

 

Agora vamos criar o arquivo com as variáveis de ambiente dentro do arquivo .env

Nome do arquivo: .env

#Variáveis MYSQL
MYSQL_ROOT_PASSWORD=wordpress
MYSQL_DATABASE=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=wordpress

#Variáveis WORDPRESS
WORDPRESS_DB_HOST=db:3306
WORDPRESS_DB_PASSWORD=wordpress

 

Com os dois arquivos prontos, vamos executar o docker compose:

# docker-compose up -d

 

Esse comando executará o arquivo docker-compose, baixar as imagens base, subir dois containers, um com o wordpress e outro com mysql.

A imagem abaixo é um resumo do que foi feito até agora com o Docker Compose e verificando se as imagens e containers estão funcionando.

 


Agora vamos detalhar o que foi usado no Docker Compose acima.

  • VERSION: é onde definimos qual a versão do Docker Compose File que estamos usando. A versão mais atual é a versão 3;
  • SERVICES: é o nome do serviços que vamos criar. Serve para diferenciar quais containers estarão no docker-compose.yml;
  • IMAGE: Determina imagem será usada como base para a criação do container. Semelhante ao FROM do Dockerfile;
  • VOLUME: Faz a montagem dos volumes no container;
  • RESTART: Determina quando o container será reiniciado. No nosso caso, será sempre reiniciado independente do status da saída do container. Para ler sobre as outras opções, clique aqui para ler ir ao Docker Docs.
  • ENV_FILE: Informa que há um arquivo com as variáveis de ambiente que serão usadas nos serviços executados nos containers;
  • DEPENDS_ON: Informa a ordem de dependência dos containers. Por exemplo, o container do wordpress só será iniciado após a criação do container do banco de dados;
  • PORTS: Expõe as portas do host e do container, em ordem;

Outras opções para utilização no docker-compose.yml:

  • BUILD: São opções para aplicar no momento da compilação do compose. Também é possível definir um diretório e compilar os arquivos dentro desse diretório, incluindo Dockerfiles;
  • COMMAND: Semelhante ao CMD do Dockerfile, executa um comando dentro do container;
  • CONTAINER_NAME: Informa o nome do container;
  • DNS: Informa o endereço do servidor DNS;
  • DNS_SEARCH: Informa o Search Domain;
  • DOCKERFILE: Deve ser usado no BUILD para informar a utilização de um Dockerfile;
  • ENTRYPOINT: Informa qual o processo principal do container;
  • ENVIRONMENT: Adiciona variáveis de ambiente. Semelhante ao ENV_FILE, mas sem criar o arquivo .env;
  • EXPOSE: Expõe a porta do container;
  • EXTERNAL_LINKS: Cria links com containers criados fora do arquivo do Docker Compose;
  • EXTRA_HOSTS: Adiciona o mapeamento de hostnames dentro do arquivo /etc/hosts do container;
  • HEALTHCHECK: Define como será testado o estado do container. É preciso determinar o teste que será realizado, o período, o timeout da resposta do teste e o número de tentativas;
  • LABELS: Adiciona informações de metadados no container;
  • LINKS: Cria links com containers que estão dentro do Docker Compose;
  • LOGGING: Configura os logs para um serviço de logs;
  • NETWORK_MODE: Define qual o modo de rede o container irá usar;
  • SYSCTLS: Configura informações relacionadas no Kernel para o container;

Para uma relação completa de todos os argumentos e como utilizá-los, basta ir à página oficial da documentação do docker.

Espero que tenham gostado das postagens e em breve postarei mais informações sobre Docker.

Ao som de: Primus – Wynona’s Big Brown Beaver