terça-feira, 20 de junho de 2023

WSL2 - Reduzir Tamanho - Usando Diskpart

 Para reduzir o tamanho do arquivo *.vhdx utilizado pelo WSL2 e que não está sendo utilizado, via diskpart:

wsl --shutdown
diskpart
# open window Diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

Post original: link

sexta-feira, 16 de junho de 2023

WSL2 - Backup/Restore

 A partir do "Prompt do MS-DOS" ou do "Windows Power Shell"


- Backup (ou Export):

wsl --export <distribuicao> <destino).tar

Exemplo:

wsl --export Ubuntu c:\meus_backups\wsl_backup_20230101_080000.tar


- Restore (ou Import):

wsl --import <distribuicao> <destino).tar

Exemplo:

wsl --import Ubuntu c:\meus_backups\wsl_backup_20230101_080000.tar


Fonte: https://www.youtube.com/watch?v=vkJr0mK_u6s&t=536s

sexta-feira, 28 de abril de 2023

Docker - Comandos Úteis

docker - Comandos Básicos

docker ps - Mostra os containers que estão rodando

docker ps -a - Mostra os containers que estão rodando / executados

docker ps -a

CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                            PORTS     NAMES

a904bf6574b5   nginx         "/docker-entrypoint.…"   4 minutes ago    Exited (137) About a minute ago             gallant_ride

b3185a63f60c   ubuntu        "bash"                   18 minutes ago   Exited (0) 18 minutes ago                   stoic_dirac

36a42a474421   ubuntu        "bash"                   22 minutes ago   Exited (0) 20 minutes ago                   pensive_swirles

eccde602a145   hello-world   "/hello"                 31 minutes ago   Exited (0) 31 minutes ago                   elastic_hamilton


docker pull <image>[:tag/latest] - baixa a imagem (do docker hub) para o computador

exemplo:

docker pull ubuntu


docker images - Listas as imagens baixadas no computador

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE

nginx         latest    6efc10a0510f   13 days ago     142MB

ubuntu        latest    08d22c0ceb15   6 weeks ago     77.8MB

hello-world   latest    feb5d9fea6a5   19 months ago   13.3kB


docker rmi <image>[:tag/latest] - Apaga a imagem do computador

docker run [parametros] <image>[:tag/latest] [comando] - Executa um container

-i -t ou -it : habilita a interação através do tty (terminal)

exemplo: 

docker run -it ubuntu bash


-d : Detacha o container

-p <porta_externa:porta_interna_container> : Redireciona as Portas

exemplo: 

docker run -d -p 8080:80 nginx


--rm : Remove o container após a execução

docker run --rm hello-world


--name : Atribui um nome ao container

docker run --name hello hello-world


docker stop <id> ou <name> - Para a execução do container

exemplo: 

docker stop a904bf6574b5

docker stop gallant_ride


docker start <id> ou <name> - Inicia a execução do container

exemplo: 

docker start a904bf6574b5

docker start gallant_ride


docker rm <id> ou <name> [-f] - Remove o container

exemplo:

docker rm a904bf6574b5

docker rm gallant_ride


-f - Força a parda e remoção do container


docker rm $(docker ps -a -q) -f - Remove todos os dockers ativos e inativos


docker exec <id>|<name> <comando> - Executa o <comando> no container indicado

docker exec -it <id>|<name>  <comando> - Executa o <comando> no container indicado com habilitação a interação através do tty (terminal)

exemplo:

docker exec -it nginx bash


docker attach <id>|<name> - 'Entra' em um container que estiver sendo executado em dettach (-d) mode.

docker logs  <id>|<name> - Lista os logs (saidas) do container

docker system prune - Limpa dados 

terça-feira, 20 de dezembro de 2022

Linux / Bash - Copiar apenas a Estrutura de Diretórios

No Linux/bash para copiar uma estrtura de diretório, pode-se usar o comando abaixo. Para tanto, deve-se estar no diretório de origem:

find -type d -links 2 -exec mkdir -p "/path/to/backup/{}" \;


Dica orginal de: http://devblog.drall.com.br/como-copiar-somente-uma-estrutura-de-diretorios-sem-os-arquivos-no-linux

quarta-feira, 21 de setembro de 2022

MySQLDUMP - Novos atributos / opções

Nova versão do mysqldump, possui alguns defaults que podem ocasionar erros na execução. Para contornar:

1) "mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTIC"

usar opção --column-statistics=0


2) "mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces"


usar opção --no-tablespaces


quinta-feira, 8 de setembro de 2022

MySQLDUMP - Remover DEFINER

 A partir da versão 5.7.8 do MySQL é possível no mysqldump remover o DEFINER usando o parâmetro --skip-definer. Porém antes desta versão, podemos usar o SED como abaixo:


sed -i 's/DEFINER=[^*]*\*/\*/g' mydump.sql

Dica retirada de: https://stackoverflow.com/questions/9446783/remove-definer-clause-from-mysql-dumps

sábado, 11 de setembro de 2021

Sort - Arquivo Delimitado

Exemplo de sort de arquivo delimitado;

sort -n --field-separator=';' -k1,2 -u -T /tmp/

-n - Campo numérico

--field-separator - separador de campos

-k - campos a serem classificados

-u unique - retira duplicidades

-T pasta para arquivos temporários