Simples configuração de um servidor NTP

Uso homologado: CentOS 7

yum install ntp ntpdate

etc/ntp.conf

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
logfile /var/log/ntp
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/

# liberando somente esses ips para consulta em nosso ntp server na nossa lan
restrict 127.0.0.1
restrict ::1
restrict 192.168.2.0 mask 255.255.255.0
restrict 192.168.254.0 mask 255.255.255.0

# onde busco o horário para sincronização.
server a.ntp.br
server b.ntp.br
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor

systemctl enable ntpd

LVM – Aumentando volume de uma partição

Ferramentas para consulta

Antes de irmos em frente, vamos ver mais algumas ferramentas LVM para exibir o status dos nossos dispositivos. Lembre-se de que temos três componentes diferentes que compõem uma partição LVM completa, o volume físico (PV, ou Physical Volume), o grupo de volume (VG, ou Volume Group) e o volume lógico (LV, ou Logical Volume).

Vamos dar uma olhada no volume físico (PV).

# pvdisplay
--- Physical volume ---
PV Name /dev/sde1
VG Name system
PV Size 7.48 GB / not usable 3.79 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 1915
Free PE 1915
Allocated PE 0
PV UUID 7vkgGI-e402-K3hE-XGJz-kl4C-nI7o-oFqwA8

Aqui podemos ver o nome do volume físico (a partição física que criamos), o grupo de volume ao qual a partição foi atribuída (que chamamos de sistema) e outras informações relativas ao tamanho do volume.

Vamos dar uma olhada no grupo de volume (VG).

# vgdisplay
--- Volume group ---
VG Name system
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.48 GB
PE Size 4.00 MB
Total PE 1915
Alloc PE / Size 1280 / 5.00 GB
Free PE / Size 635 / 2.48 GB
VG UUID Z6TSXO-0DQ3-7Jiz-67k2-dEkY-dYR2-RNJE85

Aqui temos o nome do grupo de volume (que chamamos de sistema), seu tipo (lvm2), seu espaço total e o espaço que já foi atribuído (lembre-se de que criamos dois volumes lógicos, root e home).

Finalmente, vejamos o volume lógico (LV).

# lvdisplay
--- Logical volume ---
LV Name /dev/system/linux
VG Name system
LV UUID L0qrZu-bwCp-rnEu-uJry-4j3n-XBLB-OWsXVx
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

--- Logical volume ---
LV Name /dev/system/home
VG Name system
LV UUID AScHe0-q5sJ-F8eH-bYRy-3URL-Nt7m-0UFduW
LV Write Access read/write
LV Status available
# open 0
LV Size 3.00 GB
Current LE 768
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

Aqui temos as duas partições que criamos, home e Linux. Observe que o volume físico (PV) e o grupo de volume (VG) também possuem um identificador único, que o Linux usa para detectar e controlar os dispositivos.


AUMENTAR O VOLUME DE UMA PARTIÇÃO

Agora que está usando o LVM, se você ficar sem espaço em uma partição, só terá que dizer ao LVM para atribuir mais espaço ao dispositivo em particular e redimensionar o sistema de arquivos. Embora você possa encolher partições, é bem mais seguro aumentá-las. Por isso eu recomendo a você nunca atribuir o tamanho total do volume físico aos volumes lógicos, mas sim começar pequeno e ir aumentando conforme a necessidade. Se estiver usando um sistema de arquivos ext, isso pode ser feito mesmo com as partições montadas (alguns outros sistemas de arquivos também permitem fazer isso).

A situação atual é esta, com 100% de utilização.

# df -h
/dev/mapper/system-linux 2.0G 2.0G 0 100% /media/linux

Primeiro, aumente o volume lógico em 1 GB.

# lvresize -L +1G /dev/system/linux
Extending logical volume linux to 3.00 GB
Logical volume linux successfully resized

Agora que aumentamos o dispositivo, temos que redimensionar o sistema de arquivos

# resize2fs /dev/system/linux
Filesystem at /dev/system/linux is mounted on /media/linux; on-line resizing required
Resizing the filesystem on /dev/system/linux to 786432 (4k) blocks.
The filesystem on /dev/system/linux is now 786432 blocks long.
1

Depois de redimensionar o sistema de arquivos, eis o resultado.

1
# df -h
/dev/mapper/system-linux 3.0G 2.0G 855M 71% /media/linux

Se quiser adicionar outro HD ao computador, basta instalá-lo no computador e repetir as etapas 1 e 2. Como o grupo de volume já existe, não é preciso criá-lo como na etapa 3. Em vez disso, adicione-o ao grupo existente.

# vgextend system /dev/sdf1
Volume group "system" successfully extended

Agora você tem um disco inteiro novinho como espaço LVM adicional, pronto para ser atribuído a qualquer volume lógico que você quiser.
É assim que você pode usar o LVM para expandir e atribuir espaço na mesma hora, sem ter que mover dados ou desligar o computador!

OUTRO EXEMPLO:

[root@server uferes]# /usr/sbin/lvresize  -L +1G /dev/rootvg/root
  Extending logical volume root to 4,00 GB
  Logical volume root successfully resized

[root@server uferes]# /sbin/resize2fs /dev/rootvg/root

Script de Rotacionamento de logs e arquivos

Utilizando dos comandos de compactação, xargs e flags do find

#!/bin/sh

# Define o nome para arquivamento
OLD_LOG=/var/processed_old_files_bkp/processed.backup.`date +%d%m%y`
mkdir `echo $OLD_LOG`
# move o arquivo para o diretorio de arquivamento
mv /var/data/inbound/bolas_recebeestoque_* `echo $OLD_LOG`

# compacta o arquivado
tar -czf `echo $OLD_LOG`.tar.gz `echo $OLD_LOG`
rm -r `echo $OLD_LOG`

# apaga os compactados com mais de 60 dias
find /var/processed_old_files_bkp/processed.backup*  -mtime +60 -exec rm -f {} \;

# apaga logs com mais de 20 dias.
find /var/data/inbound/bolas_recebeestoque_20* -mtime +20 -exec rm -f {} \;

# Apaga registros de emails do sendmail com mais de 15 dias (realizando uma busca somente por arquivos)
cd /var/spool/clientmqueue; find . -type f -mtime +15 | xargs rm -rf

Instalação FFmpeg CentOS 7

No centos 7 não existe mais o pacote FFmpeg.
Na internet existem tutoriais para instalação utilizando repositórios porem sempre estão quebrados.
Uma alternativa a isso tudo é compilar todas as bibliotecas e o proprio ffmpeg “na unha”

1 – Instalar as dependências:

# yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel

2 – Criar um diretório onde armazenaremos todas as dependências:

mkdir ~/ffmpeg_sources

3 – Instalação do Yasm
Yasm is an assembler used by x264 and FFmpeg

cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
make distclean
libx264

4 – Instalação do H.264 video encoder.

See the H.264 Encoding Guide for more information and usage examples
Requires ffmpeg to be configured with –enable-gpl –enable-libx264.

cd ~/ffmpeg_sources
git clone --depth 1 git://git.videolan.org/x264
cd x264
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
make distclean
libx265

5 – H.265/HEVC video encoder. See the H.265 Encoding Guide for more information and usage examples.

Requires ffmpeg to be configured with –enable-gpl –enable-libx265.

cd ~/ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265
cd ~/ffmpeg_sources/x265/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install

6 – libfdk_aac
AAC audio encoder.

Requires ffmpeg to be configured with –enable-libfdk-aac (and –enable-nonfree if you also included –enable-gpl).

cd ~/ffmpeg_sources
git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

7 – libmp3lame

MP3 audio encoder.
Requires ffmpeg to be configured with –enable-libmp3lame.

cd ~/ffmpeg_sources
curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install
make distclean

8 – libopus

Opus audio decoder and encoder.

Requires ffmpeg to be configured with –enable-libopus.

cd ~/ffmpeg_sources
git clone git://git.opus-codec.org/opus.git
cd opus
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

9 – libogg

Ogg bitstream library. Required by libtheora and libvorbis.

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
tar xzvf libogg-1.3.2.tar.gz
cd libogg-1.3.2
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

10 – libvorbis

Vorbis audio encoder. Requires libogg.

Requires ffmpeg to be configured with –enable-libvorbis.

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
tar xzvf libvorbis-1.3.4.tar.gz
cd libvorbis-1.3.4
LDFLAGS="-L$HOME/ffmeg_build/lib" CPPFLAGS="-I$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

11 – libvpx

VP8/VP9 video encoder.

Requires ffmpeg to be configured with –enable-libvpx.

cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples
make
make install
make clean

12 – FFmpeg

cd ~/ffmpeg_sources
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
make
make install
make distclean
hash -r

—————————————————————

Atualizações:

Updating

Development of FFmpeg is active and an occasional update can give you new features and bug fixes. First, remove the old files and then update the dependencies:

rm -rf ~/ffmpeg_build ~/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,x265,yasm,ytasm}
# yum install autoconf automake cmake gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
Update Yasm

cd ~/ffmpeg_sources/yasm
make distclean
git pull
Then run ./configure, make, and make install as shown in the Install yasm section.

Update x264

cd ~/ffmpeg_sources/x264
make distclean
git pull
Then run ./configure, make, and make install as shown in the Install x264 section.

Update x265

cd ~/ffmpeg_sources/x265
rm -rf ~/ffmpeg_sources/x265/build/linux/*
hg update
cd ~/ffmpeg_sources/x265/build/linux
Then run cmake, make, and make install as shown in the Install x265 section.

Update libfdk_aac

cd ~/ffmpeg_sources/fdk_aac
make distclean
git pull
Then run ./configure, make, and make install as shown in the Install libfdk_aac section.

Update libvpx

cd ~/ffmpeg_sources/libvpx
make clean
git pull
Then run ./configure, make, and make install as shown in the Install libvpx section.

Update FFmpeg

cd ~/ffmpeg_sources/ffmpeg
make distclean
git pull
Then run ./configure, make, and make install as shown in the Install FFmpeg section.

Reverting changes made by this guide

rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,yasm,ytasm}
# yum erase autoconf automake cmake gcc gcc-c++ git libtool mercurial nasm pkgconfig zlib-devel
hash -r
If You Need Help

Feel free to ask your questions at the #ffmpeg IRC channel or the ​ffmpeg-user mailing list.

Script de sincronização e backup para Windows .vbs e .bat utilizando rsync

Para utilização/instalação do Rsync no windows procure documentações na internet como esta abaixo:
http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backups-de-servidores-e-estacoes-Windows?pagina=1

1 – Instalação da biblioteca do rsync no windows e certificação de que a mesma funciona corretamente.
2 – Realizar as relações de confiança para servidores linux a fim da não solicitação de senhas.
3 – Utilizar a ferramenta microsoft de agendamento de tarefas.

sincroniza.bat => sincronizando dois servidores. Arquivos mais novos sobreescrevem os mais antigos em ambos os sentidos. Mapeamento de um server no outro. Usuário (manutencao) deve ser administrator, com os compartilhamento liberado para ele.

set data=%date:/=-%
net use j: \\servidor_a\EMPRESAExport senhaeh1234 /user:manutencao

echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| Sincronizacao realizada em %data% as %time%  |" >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "      ||||||| Arquivos abaixo sincronizados |||||||      " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"

C:\Program Files\cwRsync\cwrsync.cmd
echo "| ENVIANDO DO SERVER_A PARA SERVER_B |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
"C:\Program Files (x86)\cwRsync\bin\rsync.exe" -uvha --recursive "/cygdrive/j/" "/cygdrive/c/inetpub/EMPRESAExport" >> "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ENVIANDO DO SERVER_B PARA SERVER_A |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
"C:\Program Files (x86)\cwRsync\bin\rsync.exe" -uvha  --recursive "/cygdrive/c/inetpub/EMPRESAExport/" "/cygdrive/j" >> "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"

echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| Sincronizacao finalizada em %data% as %time% |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "       ==============================================================================================       "   >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"        
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"

backup.bat => faz backup de um diretório para outro

set data=%date:/=-%
set dia=%date:~0,2%

echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| Sincronizacao realizada em %data% as %time%  |" >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "      ||||||| Arquivos abaixo sincronizados |||||||      " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"

C:\Program Files\cwRsync\cwrsync.cmd
rsync -vh --recursive --delete --exclude "*.txt" root@192.168.100.154:/opt/apache/htdocs/ "/cygdrive/c/BACKUP_APLICACOES_CAND/dias/%dia%" >> "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"

echo " " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| Sincronizacao finalizada em %data% as %time% |"  >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"

Apaga_sent.vbs => apaga arquivos recursivamente que contem no nome a expressão “eam-new”

strPasta="C:\Program Files (x86)\Persits Software\AspEmail\Queue\Sent"
set FSo = CreateObject("Scripting.FileSystemObject")
Apagar_Arquivos(strPasta)

Sub Apagar_Arquivos(Pasta)
set folder = FSO.getFolder (Pasta)

if folder.Subfolders.count > 0 then
for each SubFolder in folder.Subfolders
Apagar_Arquivos SubFolder
next
end if

for each file in folder.files
set objFile = FSO.GetFile(file)
if FSO.GetExtensionName(objFile) = "eam-new" then
File.delete
end if
next
end sub

Apaga_logs.vbs => apaga registros dentro de um diretório recursivamente. 31 dias de retenção.

pasta = "C:\LOGS"
Apagar_Arquivos pasta

Sub Apagar_Arquivos(pasta)

Set objFSO = CreateObject("Scripting.FileSystemObject")
'aqui você informa o caminho da pasta

set folder = objFSO.getFolder (Pasta)

if folder.Subfolders.count > 0 then
  for each SubFolder in folder.Subfolders
   'AQUI ELE VAI PROCURAR PASTAS E SUBPASTAS.
   Apagar_Arquivos SubFolder
  next
end if


for each file in folder.files
   'AQUI DEFINE A QUANTIDADE DE DIAS.
   if DateDiff("d",file.DateLastModified,now) > 31 Then
      objFSO.DeleteFile(file.path)
   End if
next

End sub

Exemplo de uma tarefa agendada no windows para rodar o script de backup uma vez por dia as 23hrs:

Imagem 001

Imagem 005

Imagem 004

Imagem 003

Imagem 002