Arquivo anual 19 de agosto de 2020

porplague70

Reparando uma tabela corrompida no MysQl via SSH

Reparando todas as tabelas de um usuário do Mysql

*O Usuário deve ser o mesmo que possui permissão para acesso ao banco de dados com o problema.

mysqlcheck -u USUÁRIO-DO-MYSQL --password=SENHA-DO-USUÁRIO-MYSQL --auto-repair --check --all-databases

Reparando apenas uma tabela:

Logar no MYSQL:
mysql -u usuário_do_banco_de_dados -p

Selecionar o Banco:
use nome_do_banco;

Reparar a tabela:
repair table nome_da_tabela;

Obs: Caso queira reparar rapidamente a tabela, utilize o comando quick:
Exemplo:
repair table nomedatabela quick;

porplague70

Recursivamente procurar e substituir uma palavra em vários arquivos

O sistema operacional Linux oferece várias ferramentas para gerenciamento e edição de arquivos, neste artigo mostram como usar alguns comandos para substituir uma ou mais palavras em um arquivo de texto. Um comando bastante útil quando você precisa substituir uma ou mais palavras em alguns arquivos é este:

sed -i 's/parola1/parola2/g' *.txt

desta forma será substituído por word1 word2em todos os arquivos de texto no diretório atual.

Mas se tivéssemos que fazer isso também substituir os arquivos em algumas pastas, então sob o comando torna-se:

find ./ -type f -exec sed -i 's/parola1/parola2/g' '{}' \;

neste caso, eu fiz sem o filtro do tipo de arquivo .txt e depois serão levados em conta todos os arquivos no diretório atual e seus subdiretórios.

Com o comando find que foi utilizado o “-exec” que permite executar um comando de cada vez que um arquivo é encontrado, que respeite as regras estabelecidas para a pesquisa. No caso anterior, a pesquisa inclui todos os elementos de “file” tipo e excluir os diretórios.
Tudo está coberto por “-exec” é o comando a ser executado e seus parâmetros, para o caractere “;” indicando o final da cadeia de comando.
Outro elemento-chave é o símbolo “{}“Indica que o nome real do arquivo e descobriu que, desta forma ser usado como um parâmetro do comando que deseja executar. No comando anterior chaves” {} “foram listadas e no final de comando é precedido de uma barra “\” para proteger esses símbolos de ‘expansão shell.
O comando é executado no diretório de partida, então se o comando digitado necessita de uma saída deve ser levado em conta.

Conselho a buscar em primeiro lugar a palavra, só para ver o que será encontrado e substituído:

find ./ -type f -exec grep -r "parola1" '{}' \;

Ou você pode usar o comando:

find ./ -type f -print0 | xargs -0 grep "parola1"

desta forma irá exibir todas as linhas que contêm a string.

Em particular, a directiva tem sido usado “-print0” que permite a saída do nome completo terminada por um caractere nulo. Desta forma, o string produzida pode ser interpretado corretamente pelo programa a seguir.
Na verdade, a saída do findestá conectada com um tubo para xargs comando cujo parâmetro “-0” indica que os nomes dos arquivos recebidos como um fim de entrada com um caractere nulo.

O comando “xargs” é responsável por receber os nomes dos arquivos e executar o comando ” grep “, que por sua vez usa os parâmetros passados ​​para xargs.

Se você só quer ver exibido o nome do arquivo que a contém, o comando é:

find ./ -type f -print0 | xargs -0 grep -l "parola1"

O parâmetro “-l” indica que temos como saída uma lista de nomes de arquivos, mas não as linhas, foram encontrados nos jogos.

Faço notar que em todos os comandos listados tem sido sugerido que a pesquisa para acontecer no diretório atual e todos os seus sub-diretórios, mas se quisermos olhar para qualquer diretório que você deve inserir o caminho (relativo ou absoluto):

find /home/user/ -type f | xargs grep -l "parola1"

Finalmente, se não fosse necessário o uso de parâmetros complexos para a busca de arquivos e deseja apenas pesquisa recursivamente uma palavra ou frase dentro dos arquivos em subdiretórios múltiplas, muito mais simples basta usar o comando grep com o “-r ”

grep “this text” *.php -rDesta forma ele vai olhar para a string “este texto” em todos os arquivos. “Php” no diretório atual e todos os seus subdiretórios.

porplague70

pfSense – Instalação e configuração inicial.

Download feito, mídia queimada, vamos à instalação.

Após o boot, essa é a primeira tela, que se você estiver de bobeira nem vai ver, pois ela só é exibida por 5 segundos, dá um Enter ou deixa rolar.

Sabe aqueles termos que ninguém lê…

Install…

Escolha o teclado e “S” ou navegue até o Select com o Tab.

Eu não vi nenhuma necessidade de particionamento diferenciado, então eu fui de Auto mesmo.

E aguarde a cópia dos arquivos e a instalação.

Caso seja necessária alguma configuração adicional via shell (prompt) selecione Y, no meu caso, fui de N.

Será necessário reiniciar o sistema.

Instalação concluída! Agora vamos começar as configurações. Ao reiniciar, ele vai procurar pelas placas de rede e é imprescindível que o sistema as encontre, dando tudo certo, ele vai te mostrar as interfaces válidas e te perguntar se quer criar uma VLan, no meu caso não é necessário (acredito que no seu também não) então N.

É possível ver que ele deu um nome qualquer para as duas interfaces de rede e mostrou o status de ambas (down, pq estão desconectadas). Após decidir sobre a VLan, você deve dizer quem vai ser a sua Wan e Lan.

Confirmado, as interfaces vão tentar pegar IP e agora você tem a tela de boas vindas do pfSense.

Não vou explicar as opções, (elas são bem diretas) vou só deixar uma observação no que diz respeito as interfaces. É possível na opção 2) Set interfaces IP address configurar o IP das interfaces pelo shell mesmo, mas resolvi fazer isso pela interface web.

Para acessar a interface web, basta entrar com o ip da Lan no navegador de um computador que esteja nessa rede. O login default é: admin e a senha pfsense.

Ao acessar pela primeira vez, temos um assistente para as primeiras configurações.

O passo 1 é sobre o suporte que é oferecido, você pode ler mais sobre isso ou clicar em Next.

Passo 2: você pode configurar um nome, um domínio e DNS.

Passo 3: ele já vem configurado com um servidor de tempo, mas eu preferi usar o a.ntp.br, a timezone você vai trocar para uma mais adequada com sua região.

Passo 4: configurar a Wan.

Passo 5: Configurar a Lan.

Passo 6: redefinir a senha do administrador.

Clique em Reload.

Clique para continuar no pfSense WebConfigurator.

Pronto, aí está o Dashboard do pfsense.

Observações: Configurando um IP público e DNS na Wan, o interno na Lan, basta você configurar o IP da Lan do pfSense como gateway do seu cliente que ele já conseguirá navegar na internet. Se você for em: Firewall/Rules/LAN, verá que já existem duas regras default (IPv4 e v6) permitindo o todo o tráfego pela LAN.

Tive um contratempo com resolução de nomes em alguns sites então depois de muito pesquisar, testar e errar até acertar, consegui resolver da seguinte forma:

1. Vá na aba Services/ DNS Resolver e desmarque esta opção.

2. Vá na aba Services/DNS Fowarder, marque esta opção e em Interfaces selecione LAN.

3. Caso use o DNS do Windows, vá nas propriedades do seu servidor DNS/Encaminhadores e defina a LAN do pfSense como um encaminhador.

porplague70

clone linux rsync proxmox.

rsync –stats -X -A –numeric-ids -aH –delete –no-whole-file –inplace –one-file-system –relative ‘–exclude=/tmp/?‘ ‘–exclude=/var/tmp/?‘ ‘–exclude=/var/run/?*.pid’ /proc/13985/root///./ /home/dump/dump/vzdump-lxc-114-2020_06_07-11_40_34.tmp

porplague70

sftp vscode read only.

VScode > File > Preferences > Settings
Select “downloadWhenOpenInRemoteExplorer” then restart vscode.

porplague70

Using NAT and FTP without a Proxy

Client Behind pfSense

FTPS, or encrypted FTP, is not affected. The proxy could not have affected its traffic before.

A client on a LAN or other internal interface behind a pfSense firewall will likely not notice any difference. Most clients, aside from the Microsoft command line FTP program, default to passive (PASV) FTP, where clients make outbound connections to servers.

Passive mode on the client will require access to random/high ports outbound, which could run afoul of a strict outbound ruleset. Environments with a security policy that requires strict outbound firewall rules likely would not be using FTP anyhow, as it transmits credentials without encryption.

Active mode FTP through NAT will not function as that relies on a proxy or similar mechanism. Use Passive mode instead. Another option is the recently added FTP Client Proxy package which leverages in FreeBSD to allow clients on local interfaces to reach remote FTP servers with active FTP.

Active mode FTP for a client that does not involve NAT (Client has a public IP address) should work so long as WAN rules pass the appropriate traffic back to the client. The client may have a configurable active port range to make that simpler.

Server Behind pfSense

FTPS, or encrypted FTP, is not affected. The proxy could not have affected its traffic before.

A server behind pfSense would work fine with active mode, there would be no difference here. In active mode the server would make outbound connections back to the client, so as long as the firewall rules on the interface containing the server allow outbound connections, it will work.

A server behind pfSense running in Passive mode will function but requires a few items to be configured:

  1. Port forwards or 1:1 NAT to forward not only port 21, but also the passive port range in to the server
  2. The passive port range must be configured on the server, corresponding to the range of ports forwarded in the previous step.
  3. The server may also need to be configured to account for NAT. Some clients will ignore private addresses in passive responses so this may not be necessary.

Sample Configuration for vsftpd

In vsftpd.conf:

# Do not allow the client to use PORT
port_enable=NO
# Use the hostname in the PASV response (DNS must be setup and match!)
pasv_addr_resolve=YES
# Enable Passive Mode
pasv_enable=YES
# Set the passive port range (1000 ports)
pasv_min_port=20000
pasv_max_port=20999
porplague70

Como redimensionar uma LVM no Linux

Em algum dado momento da sua vida de administrador de servidores Linux você já se deparou com essa situação (redimensionar uma LVM) e não soube o que fazer? Aqui você aprenderá passo a passo de como estender a sua LVM e aumentar uma ou mais partições.

O que é LVM ?

O LVM ou Logical Volume Manager, é um recurso muito utilizado nos sistemas opercionais open source e é divido em 3 camadas :

  • PV ( Phisical Volume ) – Que correponde a todo o hardware de armazenamento que será utilizado no seu servidor.
  • VG (Volume Group) – São os grupos de volumes físicos que constituem o LVM.
  • LV (Logical Volume) – São os volumes lógicos que serão utilizados, ou comumente chamado de partições.

As principais vantagens de se utilizar a LVM na instalação do seu Linux são:

  • Melhor utilização do espaço em disco.
  • Redimensionamento dinâmico das partições do sistema operacional, ou seja, aumentar ou diminuir, de acordo com a disponibilidade de espaço em outras partições, ou do espaço livre no próprio LVM.
  • Permite a adição de mais discos rígidos caso seja necessário.
  • Permite que sejam criados snapshots dos volumes.


Preciso aumentar uma partição, como fazer?

Antes de mais nada, precisamos identificar qual o dispositivo que está sendo utilizado na máquina no momento, como ponto de partida, para que possamos iniciar o processo de resizing do servidor.

Para listar os dispositivos de disco utilizamos o comando “fdisk -l”:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_01


Imagem 01 – Listando os discos rígidos

Podemos verificar na Imagem 01 que o dispositivo /dev/sda é o HD principal do nosso servidor Linux, possui 20GB de espaço, e está formatado com a partição LVM.

O exemplo de redimensionamento será realizado a partir da inserção de um novo HD.

Após adicionar o hardware fisicamente e executar o comando para listar os dispositivos de armazenamento disponíveis, podemos ver que agora temos não somente o dispositivo /dev/sda, mas também o HD /dev/sdb adicionado ao servidor:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_02


Imagem 02 – Listagem dos dispositivos de armazenamento, após a inserção do novo HD.

O novo dispositivo de armazenamento, como podemos ver na Imagem 02, não possui uma tabela de partição válida, portanto, deveremos formatar o dispositivo para LVM.

Para iniciar a formatação executaremos o comando “fdisk /dev/sdb”:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_03


Imagem 03 – Iniciando formatação do dispositivo de armazenamento
Ao digitar o comando acima descrito, inserindo a letra “m”, a tabela de ajuda a seguir poderá ser visualizada.

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_04


Imagem 04 – Menu de ajuda

– Para criar uma nova partição digitaremos a letra “n”

– Selecionaremos a opção “p” de Primary Partition

– Opção “1” para selecionar o número da partição

– Nas demais opções poderá apertar a tecla “Enter” para selecionar os valores default e utilizar todo o disco no primeiro setor.

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_05


Imagem 05 – Criando nova partição

O próximo passo é definir qual o tipo de partição que será utilizada:

–  Escolha a opção “t” “change partition’s system id”.

–  Para verificar os tipos disponíveis, digite a letra “L”, e será listado todos os tipos de partições disponíveis.

–  A opção que utilizaremos será a “8e” que se refere à LVM.

– Após selecionar o tipo de partição, digitaremos a opção “w”, para gravar as alterações conforme a imagem a seguir:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_06


Imagem 06 – Selecionando os tipos de partições.
Ao listar novamente os dispositivos de armazenamento com o comando “fdisk -l” conseguimos visualizar que agora o dispositivo /dev/sdb possui uma partição LVM e está pronto para ser utilizado:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_07


Imagem 07 – Listando dispositivos de armazenamento após a formatação.

Agora que já foi criada a partição /dev/sdb1, podemos criar um novo PV (Phisical Volume) com o comando a seguir:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_08


Imagem 08 – Criando um Phisical Volume

Para listar os PV disponíveis é utilizado o comando “pvscan”. Como podemos ver, o PV /dev/sdb1 de 15GB foi adicionado com sucesso:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_09


Imagem 09 – Listando Phisical Volumes

Depois de criar o PV, será utilizado o comando “vgextend” para adicionar o PV /dev/sdb1 no Volume Group “VolGroup00”:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_11


Imagem 10 – Adicionando o PV /dev/sdb1 no VG VolGroup00
Para se certificar que o seu VG foi estendido, utilize o comando “vgdisplay” para que as propriedades do seu Volume Group apareçam. Em Free PE/Size, veremos que temos disponível neste VG 15GB que acabamos de adicionar.

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_12


Imagem 11 – Listando propriedades do VG.

No próximo passo, identificaremos os LV (Logical Volume) que deverão ser modificados, de acordo com a nossa necessidade. No meu caso, aumentarei o espaço disponível da partição /resize, que atualmente está com 5GB, e o seu LV é /dev/mapper/VolGroup-LogVol00. Lembrando que podemos utilizar o espaço disponível no Volume Group para estender uma ou mais partições.

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_13


Imagem 12 – Listando os FileSystems

Para estender o LV, utilizaremos o comando “lvextend”, que possui as seguintes opções:

-L: Estende LV de acordo com a unidade selecionada, M, G, T, P e E (Ex: lvextend -L 30G ou lvextend -L +10G /dev/mapper/VolGroup-LogVol00).

-l: Aumenta LV em porcentagem (Ex: lvextend -l 70%VG /dev/mapper/VolGroup-LogVol00).

– Estendo a partição /resize:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_14


Imagem 13 – Estendendo um LV

– Com o comando “lvscan” podemos verificar se o espaço foi adicionado ao LV:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_15


Imagem 14 – Listando Logical Volumes

– Por último, teremos que estender o File System com o comando “resize2fs”, conforme a seguir:

2015_Marco_Rafael_Casado_Como_Redimensionar_Uma_LVM_16


Imagem 15 – Resize File System.

Vale salientar que somente nas versões do Kernel 2.6.17 ou superiores o comando acima pode ser executado com a partição de formato ext3 online, caso contrário, a partição deverá ser desmontada para que o procedimento seja executado.

A tecnologia LVM foi criada para facilitar a vida do administrador de sistemas das plataformas open source, quando utilizada da forma correta, pode se tornar uma grande aliada no dia a dia.