PDA

View Full Version : A chi capisce di Linux (Cron)


Jarsil
13-11-2001, 22:14
Per lavoro, ho creato uno script che backuppa e zippa in Tgz file "critici" di server linux di alcuni pc di clienti...
Ora ho bisogno di un comando da inserire nel cron.daily che prenda quel file .tgz e lo maili al sottoscritto oppure che lo invii tramite ftp (magari sftp così è criptato) in maniera automatica, quindi senza richidere user e pwd del sottoscritto ogni volta...

Qualcuno ha idee?

Wayne
14-11-2001, 09:05
Ciapa qui:

ftp -n $NOMEMACCHINA << EOF
user $NOMEUTENTE $PASSWORD
put $ORIGINE1 $DESTINAZIONE1
get $DESTINAZIONE2 $ORIGINE2
EOF

Sono gli "EOF" che comandano :D

Se poi vuoi fare lo sboronius maximus e mandarti anche una e-mail quando ha fatto:

/usr/lib/sendmail -t $DESTINATARIO << EOF
From: $MITTENTE
Subject: $SUBJECT

`cat $FILEDIESITO`

EOF

Ciaps.

Tass O Mann
15-11-2001, 15:33
mi ricorda perl :p

Jarsil
17-11-2001, 10:25
Originally posted by Wayne
Ciapa qui:

ftp -n $NOMEMACCHINA << EOF
user $NOMEUTENTE $PASSWORD
put $ORIGINE1 $DESTINAZIONE1
get $DESTINAZIONE2 $ORIGINE2
EOF

Sono gli "EOF" che comandano :D

Se poi vuoi fare lo sboronius maximus e mandarti anche una e-mail quando ha fatto:

/usr/lib/sendmail -t $DESTINATARIO << EOF
From: $MITTENTE
Subject: $SUBJECT

`cat $FILEDIESITO`

EOF

Ciaps.

Purtroppo non funziona :(

I nostri server hanno disabilitato di default il demone ftp standard, è possibile accedere dall'esterno solo attraverso l'SFTP, quello di SSH per capirci...

e sfpt non supporta l'opzione -n né tantomeno si fa fottere a dirgli la password utente nello script, visto che si basa sulle key di autenticazione dell'RSA... (a 1024bit....)

Vedrò come posso aggirare il problema...

Jarsil
18-11-2001, 12:10
La parte di sendmail funziona ma senza l'opzione -t

il path è /usr/sbin/sendmail.

Posto qui lo script intero, così magari ci capiamo. Questo script ha un link simbolico in cron.daily per l'esecuzione giornaliera.


#!/bin/bash

# Questo file esegue la copia di backup dei file di configurazione
# per le Blubox con HDSL

# By stefano finetti (ssfinetti), 2001

echo -n "Creazione struttura directory in corso ... "

# mi sposto nella directory in cui verra creato il backup
cd /home/ssfinetti

# estrazione del nome macchina per la dir radice del backup
base=`uname -n`
mkdir $base

# creazione della lista di files da copiare

LISTA="/etc/vtund.conf /etc/pptpd.conf /etc/hosts /etc/modules.conf \
/etc/dhcpd.conf /etc/HOSTNAME /etc/named.* /var/named/* \
/etc/passwd /etc/resolv.conf /etc/smb.conf.local /etc/ppp/chap-secrets \
/etc/ppp/options.pptp /etc/sysconfig/ipchains.params /etc/sysconfig/ipchains.start \
/etc/sysconfig/orig.ford.* /etc/sysconfig/network-scripts/ifcfg-* \
/etc/rc.d/init.d/firewall /etc/rc.d/init.d/vtund /ect/squid/* \
/etc/rc.d/init.d/pptpd /var/log/kern.log /var/named/* \
/var/log/secure /sbin/ifup-local "

for FILE in $LISTA ; do
cp -aPuv "$FILE" ${base}/
done


echo " Fatto!"

# Ora realizziamo un file TarGZ contenente tutti file copiati sin'ora
# in modo da poterlo trasportare sul pc di lavoro con la possibilità
# di mantenere i permessi originali sui file e cambiarli solo al .tgz

echo -n "Creazione del file tar in corso...."
tar zcvpf ${base}.tgz $base
echo "Fatto!"

# e ora il cambio permessi di proprietà del .tgz da root a ssfinetti...

echo -n "Cambio permessi da root a ssfinetti in corso..... "
chown ssfinetti $base.tgz
echo "Fatto!"

echo -n "Rimozione dei file temporanei e delle cartelle...."

cd /home/ssfinetti
rm -rf $base/*
rmdir $base
echo "Fatto!"
# Saluti e Baci, By ssfinetti

# Invio mail di avviso della esecuzione del backup in cron.daily
/usr/sbin/sendmail ssfinetti@lynxtesoft.it << EOF
From: ssbackup
Subject: Conferma Backup Giornaliero

$base
.
EOF

echo "Programma Terminato"


Come vedi manca ancora la parte legata al trasferimento del file, che poi è la cosa più importante che devo riuscire a far andare.
Con l'ftp semplice non va perché il nostro server rifiuta connessioni di tipo FTP da macchine che non sono nella stessa rete locale, la soluzione sarebbe quella di mettere anche i server dei clienti collegati con il Vtund ma non va bene perché aprendogli la rete col tunneling potrebbero accedere ai nostri PC e questa non è cosa buona

Soluzione alternativa: qualcuno sa come fare in modo che SSH e SFTP funzionino senza dover mettere la password? so che bisogna creare delle coppie di authentication keys RSA da almeno 1024 bytes ma non son riuscito a capire come... PLZZZZ :)

Wayne
19-11-2001, 09:21
Originally posted by Jarsil
Soluzione alternativa: qualcuno sa come fare in modo che SSH e SFTP funzionino senza dover mettere la password? so che bisogna creare delle coppie di authentication keys RSA da almeno 1024 bytes ma non son riuscito a capire come... PLZZZZ :)

Nel file sshd.conf c'e' un

USE .RHOSTS = NO

mettilo a "YES", e poi ti puoi comportare esattamente come faresti con l'RLOGIN.

(metti i files .rhosts con le macchine che possono accedere...e poi cmq so che sei uno che legge i man :D :D )

Ciapz.