Kronos - Sincronização de arquivos remotos
Publicado por N 02/02/2006
[ Hits: 5.910 ]
Sistema de sincronização de arquivos remotos.
Nycholas de Oliveira e Oliveira - o_lalertom
# MAIN =======================================
#!/bin/bash
#
# Sistema de sincronização de arquivos.
# Copyright (C) 2005 by Nycholas de Oliveira e Oliveira <nycholas@gmail.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# <Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os
# termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation;
# tanto a versão 2 da Licença, como (a seu critério) qualquer versão posterior.>
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# <Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA
# GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA
# FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes.>
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# <Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este
# programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59
# Temple Street, Suite 330, Boston, MA 02111-1307 USA.>
#
#########################################################
# NOME : Nycholas de Oliveira e Oliveira #
# E-MAIL : nycholas@gmail.com #
# ICQ : 114965471 #
# MSN : o_lalertom@hotmail.com #
# JABBER : nycholas@jabber.org #
# TALK : nycholas@gmail.com #
# DESCRICAO : Sistema de sincronizacao de arquivos #
# DESCRICAO : Script principal #
# LOCALIZACAO : Uberlândia - MG #
# LOCALIZACAO : Brasil #
#########################################################
#######################################
# Constantes programas:
WHICH="/usr/bin/which"
CUT="/usr/bin/cut"
PWD=`$WHICH pwd | $CUT -f 1`
SLEEP=`$WHICH sleep | $CUT -f 1`
#######################################
# Executaveis:
PREFIX="/etc/cron.kronos"
KRONOS="$PREFIX/kronos"
MAIL="$PREFIX/mail"
#######################################
# Dispositivos:
NULL="/dev/null"
###########################################################
###########################################################
###########################################################
$SYNC
$KRONOS 2>&1&> $NULL
if [ $? -ne 0 ];
then
$MAIL
exit 1
fi
$SYNC
# KRONOS =======================================
#!/bin/bash
#
# Sistema de sincronização de arquivos.
# Copyright (C) 2005 by Nycholas de Oliveira e Oliveira <nycholas@gmail.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# <Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os
# termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation;
# tanto a versão 2 da Licença, como (a seu critério) qualquer versão posterior.>
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# <Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA
# GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA
# FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes.>
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# <Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este
# programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59
# Temple Street, Suite 330, Boston, MA 02111-1307 USA.>
#
#########################################################
# NOME : Nycholas de Oliveira e Oliveira #
# E-MAIL : nycholas@gmail.com #
# ICQ : 114965471 #
# MSN : o_lalertom@hotmail.com #
# JABBER : nycholas@jabber.org #
# TALK : nycholas@gmail.com #
# DESCRICAO : Sistema de sincronizacao de arquivos #
# LOCALIZACAO : Uberlândia - MG #
# LOCALIZACAO : Brasil #
#########################################################
#######################################
# Constantes programas:
WHICH="/usr/bin/which"
CUT="/usr/bin/cut"
RSYNC=`$WHICH rsync | $CUT -f 1`
ECHO=`$WHICH echo | $CUT -f 1`
SYNC=`$WHICH sync | $CUT -f 1`
TOUCH=`$WHICH touch | $CUT -f 1`
MKDIR=`$WHICH mkdir | $CUT -f 1`
CHMOD=`$WHICH chmod | $CUT -f 1`
CHOWN=`$WHICH chown | $CUT -f 1`
DATE=`$WHICH date | $CUT -f 1`
#######################################
# Dispositivo:
NULL="/dev/null"
#######################################
# Constantes:
DATA_HORA=$($DATE +%d.%m.%Y_%H.%M.%S)
#######################################
# Log:
PREFIX_LOG="/var/log/kronos"
ARQUIVO_LOG="$PREFIX_LOG/kronos.log"
#######################################
# Diretorios:
HOME_KRONOS="/home/kronos"
#######################################
# Sync:
USER_SERVER="kronos"
IP_SERVER="192.168.0.1"
DIR_SERVER_SYNC="/home/kronos/sync"
DIR_HOST_SYNC="/home/kronos/sync"
OPTIONS="--checksum --archive --recursive --perms --owner --group --devices --delete-excluded --compress --progress --verbose --partial --update"
#######################################
# Efeitos BASH:
PRETO="\{FONTE}33[1;30m"
VERMELHO="\{FONTE}33[1;31m"
VERDE="\{FONTE}33[1;32m"
AMARELO="\{FONTE}33[1;33m"
AZUL="\{FONTE}33[1;34m"
ROSA="\{FONTE}33[1;35m"
CIANO="\{FONTE}33[1;36m"
BRANCO="\{FONTE}33[1;30m"
ALERTA="\{FONTE}33[5;31m"
TAB="\{FONTE}33[70G"
BEEP="\\a"
FIM="\{FONTE}33[0m"
#######################################
# Mensagens:
OK="$TAB[$VERDE OK $FIM]\n"
FALHOU="$TAB[$VERMELHO FALHOU $FIM]\n"
EXE=" + + [$AMARELO EXECUTADO $FIM] + + \n"
###########################################################
###########################################################
###########################################################
$SYNC 2>&1&> $NULL
if [ ! -e $PREFIX_LOG ];
then
$MKDIR -p $PREFIX_LOG 2>&1&> $NULL
$TOUCH $ARQUIVO_LOG 2>&1&> $NULL
$CHMOD 0700 -R $PREFIX_LOG 2>&1&> $NULL
$CHOWN kronos:kronos -R $PREFIX_LOG 2>&1&> $NULL
fi
if [ $? -ne 0 ];
then
$ECHO -en "$ALERTA !!! PERMISSAO NEGADA PARA CRIACAO DA HIERARQUIA DE LOG !!!$FIM\n"
exit 1
fi
$SYNC 2>&1&> $NULL
$ECHO -en "$EXE" > $ARQUIVO_LOG
$ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG
$ECHO -en "$ROSA :: Inicializado - $FIM$AMARELO$DATA_HORA$FIM$ROSA ::$FIM\n" >> $ARQUIVO_LOG
$ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG
$SYNC 2>&1&> $NULL
$CLEAR 2>&1&> $NULL
$SYNC 2>&1&> $NULL
$ECHO -en "$ROSA::$FIM$AMARELO Verificando diretorios$FIM $ROSA::$FIM\n" >> $ARQUIVO_LOG
for I in $HOME_KRONOS $PREFIX_LOG ; do
$ECHO -en "$ROSA->$FIM$AZUL Diretorio$FIM$CIANO $I$FIM$AZUL$FIM $ROSA<-$FIM" >> $ARQUIVO_LOG
if [ -e $I ];
then
$ECHO -en "$OK" >> $ARQUIVO_LOG
else
$ECHO -en "$FALHOU" >> $ARQUIVO_LOG
$MKDIR -p $I 2>&1&> $NULL
$CHMOD 0700 -R $I 2>&1&> $NULL
$CHOWN kronos:kronos -R $I 2>&1&> $NULL
fi
$SYNC 2>&1&> $NULL
done
$SYNC 2>&1&> $NULL
$ECHO -en "$ROSA::$FIM$AMARELO Sincronizando arquivos $FIM$ROSA::$FIM\n" >> $ARQUIVO_LOG
$ECHO -en "$ROSA->$FIM$AZUL Sincronizando$FIM$CIANO $USER_SERVER@$IP_SERVER:$DIR_SERVER_SYNC $DIR_HOST_SYNC $FIM$ROSA<-$FIM\n" >> $ARQUIVO_LOG
$ECHO -en "$VERMELHO" >> $ARQUIVO_LOG
if $RSYNC $OPTIONS $USER_SERVER@$IP_SERVER:$DIR_SERVER_SYNC $DIR_HOST_SYNC >> $ARQUIVO_LOG 2> $NULL;
then
$ECHO -en "$FIM $BRANCO ++ Status ++ $FIM $OK" >> $ARQUIVO_LOG
else
$ECHO -en "$FIM $BRANCO ++ Status ++ $FIM $FALHOU" >> $ARQUIVO_LOG
exit 1
fi
$SYNC 2>&1&> $NULL
$ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG
$ECHO -en "$ROSA :: Terminado - $FIM$AMARELO$DATA_HORA$FIM$ROSA ::$FIM\n" >> $ARQUIVO_LOG
$ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG
$SYNC 2>&1&> $NULL
# MAIL =======================================
#!/bin/bash
#
# Sistema de sincronização de arquivos.
# Copyright (C) 2005 by Nycholas de Oliveira e Oliveira <nycholas@gmail.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# <Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os
# termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation;
# tanto a versão 2 da Licença, como (a seu critério) qualquer versão posterior.>
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# <Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA
# GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA
# FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes.>
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# <Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este
# programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59
# Temple Street, Suite 330, Boston, MA 02111-1307 USA.>
#
#########################################################
# NOME : Nycholas de Oliveira e Oliveira #
# E-MAIL : nycholas@gmail.com #
# ICQ : 114965471 #
# MSN : o_lalertom@hotmail.com #
# JABBER : nycholas@jabber.org #
# TALK : nycholas@gmail.com #
# DESCRICAO : Sistema de sincronizacao de arquivos #
# DESCRICAO : Sistema de e-mail #
# LOCALIZACAO : Uberlândia - MG #
# LOCALIZACAO : Brasil #
#########################################################
#######################################
# Constantes programas:
WHICH="/usr/bin/which"
CUT="/usr/bin/cut"
DATE=`$WHICH date | $CUT -f 1`
CAT=`$WHICH cat | $CUT -f 1`
SYNC=`$WHICH sync | $CUT -f 1`
PWD=`$WHICH pwd | $CUT -f 1`
ECHO=`$WHICH echo | $CUT -f 1`
MAIL=`$WHICH mail | $CUT -f 1`
SED=`$WHICH sed | $CUT -f 1`
TEE=`$WHICH tee | $CUT -f 1`
#######################################
# Dispositivo:
NULL="/dev/null"
#######################################
# Constantes:
DATA_HORA=$($DATE +%d-%m-%Y_%H:%M:%S)
DATA_HORA_=$($DATE +%d-%m-%Y_%H:%M:%S)
#######################################
# Log:
PREFIX_LOG="/var/log/kronos"
ARQUIVO_LOG="$PREFIX_LOG/kronos.log"
ARQUIVO_LOG_MAIL="$PREFIX_LOG/mail.log"
#######################################
# Mail:
TO_ADDR="nycholas@gmail.com"
BCC_ADDR="nycholas_oliveira@yahoo.com.br nycholas@kamano.zzn.com"
SUBJECT="SISTEMA_DE_SINCRONIZACAO_DE_ARQUIVOS_-RSYNC-_$DATA_HORA_"
CAT_LOG=$($CAT $ARQUIVO_LOG_MAIL)
MESSAGE="\nSenhores(as) Adimistradores(as),\n\n\tEssa e uma mensagem enviada automaticamente pelo o SISTEMA DE SINCRONIZACAO DE ARQUIVOS - RSYNC. Logo baixo esta o arquivo de LOG do SISTEMA DE SINCRONIZACAO DE ARQUIVOS - RSYNC, favor averiguar os demais erros e corrigi-los.\n\n\tDesde ja agradeco a colaboracao,\n\n\nNycholas de Oliveira e Oliveira - o_lalertom ($DATA_HORA).\n\n\n$CAT_LOG"
###########################################################
###########################################################
###########################################################
$CAT -r $ARQUIVO_LOG | $SED 's/\^\[\[//g; s/70G1\;33m//g; s/0m//g; s/1\;35m//g; s/1\;33m//g; s/1\;34m//g; s/70G//g; s/1\;32m//g; s/1\;31m//g; s/1\;36m//g; s/1\;3//g; s/\\//g' | $TEE $ARQUIVO_LOG_MAIL 2>&1&> $NULL
$ECHO -en "$MESSAGE" | $MAIL -s $SUBJECT -b $BCC_ADDR $TO_ADDR 2>&1&> $NULL
Script simples de procura de arquivo.
Abrindo Sessão Cluster Beowulf
apt-fast melhorado e empacotado
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Preciso recuperar videos *.mp4 corrompidos (11)
É normal não gostar de KDE? (11)
Secure boot, artigo interessante, nada técnico. (2)









