sexta-feira, 9 de dezembro de 2016

Script para remover caracter colchete e e renomear diretórios ou arquivos com espaços no nome

Script para remover caracter colchete e renomear diretórios ou arquivos com espaços no nome


No meu post anterior (link aqui), eu havia ensinado como remover os colchetes de nomes de diretórios, usando um simples script com os comandos mv e sed e, usando uma instrução de laço de repetição for. Este script serve para arquivos sem espaços no nome!

Ao se utilizar espaços em nomes, cada palavra de um nome, será reconhecido pelo shell do Linux como um arquivo distinto!

A solução que encontrei foi, colocar cada nome de arquivo ou diretório em um ARRAY, para poder tratar os nomes de forma distinta!

Segue, abaixo, o script para tratar nomes de arquivos com espaços e colchetes!

script-renomeia2.sh


#!/bin/bash #===============================================================
# script-renomeia2.sh
#===============================================================
# Script para remover colchetes e espaços dos nomes dos arquivos
#
# versão 1.0-ALPHA-20161206
#
# Autor: Marcio C. Bravim - LPI 3 e RHCE

# Consultoria e Treinamento Linux
# marcio.cbravim@yahoo.com.br
# movel/whatsapp: 21 - 96488-6449 (NEXTEL)
#===============================================================
## 


# Valor para primeiro ARRAY
A=0

# Conta total de linhas
X=`ls -G1 | grep "\[" | awk -F[ '{ print $2 }' |  wc -l`

for VAR in `seq 1 $X` ; do


      declare -a ARRAY_NOME_[$A]="`ls -G1 | grep "\[" | head -n $VAR | tail -n 1`"

      mv "${ARRAY_NOME_["$A"]}" "`echo ${ARRAY_NOME_["$A"]} | sed -e 's/\[//' | sed -e 's/\]//'`"

      let A=A+1


done

#=---
# FIM

Execute o script dentro do diretório em que se encontram os arquivos que serão renomeados!

Download do script pode ser feito por aqui: script-renomeia2.sh


Vida longa e Próspera!

#=------
Leu? Deixe um comentário! Compartilhe e Indique! Obrigado!!!
#=------


AUTOR:
Marcio C. Bravim (RJ) – Certificado LPI 3 e RHCE
Consultor Linux / Instrutor
marcio.cbravim@yahoo.com.br / @marciocbravim
Whatsapp (21) 96488-6449

segunda-feira, 5 de dezembro de 2016

Script para remover caracter colchete de nomes de diretórios e arquivos

Script para remover caracter colchete de nomes de diretórios e arquivos



Recentemente, um aluno me procurou com um problema!
Ele trabalha com jukebox (máquinas que tocam músicas) e, os nomes das pastas com os arquivos de músicas, estavam dentro de colchetes. Algo que, o programa que executa os arquivos, não sabia lidar, por causa deste caracter especial!

O diretório contendo os arquivos de músicas, estava, mais ou menos, desse jeito:

aluno@desktop: Musicas$ ls
[Axé] [Dance] [Forró] [Funk] [MPB] [Pagode] [Samba] [Sertanejo]


Ele precisava renomear todas as pastas, preservando seus nomes originais!

A solução: um simples script , com o uso do for, sed e mv, para renomear, de uma só vez, todos os nomes das pastas dos arquivos!

O SCRIPT:  

#!/bin/bash##
#===================================================================
# Script para remover colchetes ("[" e "]") dos nomes dos arquivos
#
# versão 1.0-ALPHA-20161205
#
# Autor: Marcio C. Bravim - LPI 3 e RHCE
# marcio.cbravim@yahoo.com.br
# movel/whatsapp: 21 - 96488-6449 (NEXTEL)
#===================================================================
##

VAR_NOME=`ls -G1 | fmt`
 

for VAR1 in $VAR_NOME ; do
      mv "${VAR1}" "`echo ${VAR1} | sed -e 's/\[//' | sed -e 's/\]//'`"
done

#=---
# FIM

 
A sequência --> `echo ${VAR1} | sed -e 's/\[//' | sed -e 's/\]//'` <-- está dentro de CRASE e ASPAS!

Execute o script dentro do diretório em que se encontram os arquivos que serão renomeados!

Você poderá modificar o script para, retirar qualquer caracter dos nomes dos arquivos!

Download do script pode ser feito por aqui: script-renomeia.sh

Vida longa e Próspera!

#=------
Leu? Deixe um comentário! Compartilhe e Indique! Obrigado!!!
#=------


AUTOR:
Marcio C. Bravim (RJ) – Certificado LPI 3 e RHCE
Consultor Linux / Instrutor
marcio.cbravim@yahoo.com.br / @marciocbravim
Whatsapp (21) 96488-6449 


domingo, 17 de julho de 2016

Mais de 4 placas de rede em uma VM no VirtualBox

Mais de 4 placas de rede em uma VM no VirtualBOX


Imagine a situação de, em seu ambiente de TI, possuir um servidor de arquivos ou web para vários domínios, cada um com uma subnet (faixa de IP) diferente, e necessitar de oferecer serviços com um único servidor.

Nesta situação, ao invés de configurar diversos "alias" de IP para uma única interface, uma solução interessante seria definir uma interface própria para cada domínio (subnet) que seu servidor atendesse!

Muitos não sabem, mas é possível ter em uma máquina virtual com mais de 4 interfaces de rede no VirtualBOX!

Pelo modo gráfico, a interface de gerenciamento do VirtualBOX só exibe 4 abas de configuração de adaptadores de rede. Mas, dependendo do chipset que for utilizado na VM, será possível configurar até 36 interfaces!

Isso mesmo: 36!

Só há um problema: Não será possível visualizar todas as interfaces pela janela do modo gráfico do VirtualBOX. Apenas 4 adaptadores de rede ficarão disponíveis para configuração (e 8 visíveis). As outras 32 interfaces, você terá que gerenciá-las pela linha de comando! Veja foto abaixo.



O chipset PIIX3 permite o uso de até 8 interfaces. Enquanto que, o chipset ICH9, permite até 36 interfaces!

Primeiramente, devemos alterar o chipset que é definido por padrão na criação da VM, que é o PIIX3, para o ICH9. Para isto, você deverá executar o comando vboxmanage, para modificar este parâmetro de sua VM.

No exemplo, minha VM é identificada pelo nome "Debian8-FileServer-1".  Portanto, o comando seria:

marciocbravim@desktop01:~$ vboxmanage modifyvm Debian8-FileServer-1 --chipset ich9

Para realizar esta tarefa na linha de comandos do Windows (cmd) execute o "Prompt de Comando" (Menu Iniciar > Todos os Programas > AcessóriosPrompt de Comando) e digite:

C:\Users\Marcio Bravim> cd "C:\Program Files\Oracle\VirtualBox"
C:\Program Files\Oracle\VirtualBox> .\VBoxManage.exe modifyvm Debian8-FileServer-1 --chipset ich9

Caso queira modificar esta opção pelo modo gráfico, na janela de configuração da máquina virtual, vá no item Sistema e, na aba Placa-Mãe, altere o chipset da VM (veja foto abaixo).

Criando as interfaces


E, para criar uma única interface pela linha de comando, execute o comando abaixo:

marciocbravim@desktop01:~$ vboxmanage modifyvm Debian8-FileServer-1 --nic1 bridged --bridgeadapter1 eth0 --nictype1 82540EM --cableconnected1 on --nicspeed1 1000000

Opções:

--nic1 bridged
A interface será criada no modo bridged. Tanto a máquina hospedeira (real) quanto a convidada (virtual) irão utilizar a placa de rede diretamente conectada ao segmento de rede. Ambas podem ser acessadas externamente.

--bridgeadapter1 eth0
Define que a interface conectada a máquina virtual será a primeira interface da máquina hospedeira (eth0).
No caso de um sistema Microsoft Windows, a opção, geralmente, é "Conexão local", para a primeira interface.

--nictype1 82540EM
Define o chipset da interface que será utilizado pelo sistema virtual.

--cableconnected1 on
Define que o cabo de rede será reconhecido pela máquina virtual como sempre conectado

--nicspeed1 1000000
Define que a velocidade da interface será de 1 milhão de quilobits (ou 1 Gbit/s)

Para criar com um único comando as 36 interfaces possíveis com o chipset ICH9, podemos utilizar uma instrução de laço de repetição, o for. Para tanto, digite:

marciocbravim@desktop01:~$ for VAR in `seq 1 36` ; do vboxmanage modifyvm Debian8-FileServer-1 --nic${VAR} bridged --bridgeadapter${VAR} eth0 --nictype${VAR} 82540EM --cableconnected${VAR} on --nicspeed${VAR} 1000000 ; done

Para realizar esta tarefa na linha de comandos do Windows, digite:

C:\Users\Marcio Bravim> for /l %x in (1, 1, 36) do "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm Debian8-FileServer-1 --nic%x bridged --bridgeadapter%x "Conexão local" --nictype%x 82540EM --cableconnected%x on --nicspeed%x 1000000

NOTA: Depois do "for", o caracter é "barra-éle"

Para remover uma interface, você pode digitar:

marciocbravim@desktop01:~$ vboxmanage modifyvm Debian8-FileServer-1 --nicX none

Onde --nicX  é o número da interface no qual deseja remover!


#=------
Leu? Deixe um comentário! Compartilhe e Indique! Obrigado!!!
#=------


AUTOR:
Marcio C. Bravim (RJ) – Certificado LPI 3 e RHCE
Consultor Linux / Instrutor
marcio.cbravim@yahoo.com.br / @marciocbravim
Whatsapp (21) 96488-6449