Linux

rsnapshot

sfoltire i bachup creati con rsnapshot

Questo script cancella i direttori di rsnapshot /media/usb/dati/daily.### in base ai parametri passati...ad esempio tiene un direttorio du 5 ecc

#!/bin/bash

function quit {
        exit
}

function cancella {
    echo $1 $2 $3

    for (( COUNTER=$1; COUNTER<=$2; COUNTER+=$3 )); do
        if [ $3 > 1 ]; then
            for (( J=0; J<$3; J+=1 )); do
                ATTUALE=$(($COUNTER+$J))
                if [ "$J" -eq 0 ]; then
                    echo Tengo    $J $ATTUALE
                else
                    echo Cancello $J $ATTUALE
                    if [ -d "/media/usb/dati/daily.$ATTUALE" ]; then
                        echo DEL  rm /media/usb/dati/daily.$ATTUALE -r >> pulizia.log
                        rm /media/usb/dati/daily.$ATTUALE -r
                    fi
                fi
            done
        fi

#       echo $COUNTER
  done
}

# *** BODY ***
cancella 500 600 6
cancella 400 499 5
cancella 300 399 4
cancella 200 299 3
cancella 100 199 2
quit


iSCSI
ad esempio; supponiamo di avere un qnap configurato con l'interfaccia iSCSI all'IP: 192.168.0.3

il comando:
iscsiadm -m discovery -t st -p 192.168.0.3
rende:
192.168.0.3:3260,1 iqn.2004-04.com.qnap:ts-431plus:iscsi.studiobackup.ebc389

il comando per montare il disco e':
iscsiadm -m node --targetname "iqn.2004-04.com.qnap:ts-431plus:iscsi.studiobackup.ebc389" --portal "192.168.0.3:3260" --login
rende:
Logging in to [iface: default, target: iqn.2004-04.com.qnap:ts-431plus:iscsi.studiobackup.ebc389, portal: 192.168.0.3,3260] (multiple)
Login to [iface: default, target: iqn.2004-04.com.qnap:ts-431plus:iscsi.studiobackup.ebc389, portal: 192.168.0.3,3260] successful.

il comando per verificare se il disco iscsi esiste e':
/dev/disk/by-path/ip-*
rende:
/dev/disk/by-path/ip-192.168.0.3:3260-iscsi-iqn.2004-04.com.qnap:ts-431plus:iscsi.studiobackup.ebc389-lun-0
/dev/disk/by-path/ip-192.168.0.3:3260-iscsi-iqn.2004-04.com.qnap:ts-431plus:iscsi.studiobackup.ebc389-lun-0-part1

Kiosk
per installare un Kiosk con linux debian
1) Installare una debian minimale
2) Aggiungere i pacchetti con
    apt-get install vim openbox xorg rdesktop sudo
3) Creare l'utente con privilegi ridotti
    adduser kiosk
4) Creare lo script di avvio kiosk in /etc/init.d

#!/bin/sh
### BEGIN INIT INFO
# Provides:          kiosk
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Il totem del LUG
# Description:       Totem per la sola navigazione internet
### END INIT INFO

case "$1" in
    start)
        su kiosk -c 'startx'
                # opzionalmente si può aggiungere qui halt
        ;;
    stop)
        echo "Stopping totem"
        ;;
    *)
        echo "Usage: $0 {strat|stop}"
        exit 1
        ;;
esac
exit 0

4a) Aggiungere lo script ai diversi runlevel
    update-rc.d kiosk defaults

4b) Per eliminare il servizio si può usare
    # update-rc.d -f kiosk remove

5) Aggiungiamo i comendi per avviare automaticamente le applicazioni editando il file /etc/xdg/openbox/autostart.sh. Alla fine del file aggiungiamo.
    /usr/bin/firefox &
    /usr/bin/rdesktop -u admin 192.168.99.38 &
    ...ed eventuali altre applicazioni

Possibili problemi

Non parte x
e rende l'errore: X: user not authorized to run the X server, aborting.
Editare il file /etc/X11/Xwrapper.config modificando la riga seguente:
    allowed_users=anybody

Aumentare il numer di colori: generare un nuovo file di xorg.conf con il comando
    Xorg -configure

Il nuovo file sarà salvato in /root/xorg.conf.new. Per renderlo attivo deve essere collocato in /etc/X11/xorg.conf. Successivamente editarlo come segue:
Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    DefaultDepth    24
EndSection

Aggiungere spegni al menu di xorg: Installare il pacchetto sudo
    apt-get install sudo

Editare il file /etc/sudoers
    kiosk    ALL = NOPASSWD:    /sbin/halt

Editare il file /etc/xdm/openbox/menu.xml per aggiungere la voce di menu
 <item label="Spegni">
    <action name="Execute">
    <command>sudo halt</command>
    </action>
  </item>


cron

Cron può essere fatto partire da rc o da rc.local e ritorna immediatamente al prompt, sicchè non c' bisogno di lanciarlo in background.
Cron ricerca il file /etc/crontab per le voci (le cosiddette "entry") di sistema e /var/spool/cron per le voci relative agli utenti che si trovano nel file /etc/passwd.
Tutte le voci ritrovate sono caricate in memoria. Cron legge anche i files che si trovano in cron.d. Cron ricerca le modifiche ogni minuto quindi non è necessario riavviare il servizio in caso di cambiamenti.

Utilizzare crontab

Il "cron daemon" legge il file "crontab"; ogni utente può avere la propria versione di questo file. La sintassi per il programma crontab è la seguente:
crontab [-u user] file
crontab [-u user] -l -e -r
Dove:
-u  nome dell'utente che "possiede" il file. Se -u è omesso, il sistema deduce per default che state usando il vostro crontab personale.
-l   visualizza il contenuto di crontab per l'utente
-e  entra in edit sul crontab per l'utente
-r  rimuove il file crontab dell'utente specificato.

Voci in Crontab
Solo 2 tipi di voci sono permesse nel crontab: i settaggi ambientali (Crontab Environmental settings) e i settaggi di comando (Crontab Command settings)

Crontab Environmental settings
I settaggi ambientali utilizzano la seguente forma:
nome = valore
Cron conosce già le diverse variabili ambientali. Per esempio, SHELL è settato a /bin/bash.
Altre variabili ambientali, come LOGNAME e HOME, sono associate al possessore del file. SHELL e HOME posso essere sovrascritte nello script, mentre non è possibile farlo con LOGNAME. Se MAILTO è definito (e non è settato a " "), tale variabile è inserita in una riga nel file crontab, e spedisce ogni messaggio generato all'utente specificato in questo campo.
La seguente riga mostra MAILTO settato ad uno specifico utente (luca): # spedisce tutti gli output all'utente *luca* (non importa chi è il proprietario di questo crontab)
MAILTO=luca@mio.dominio

Crontab Command settings
I settaggi comandi usano un formato standard: ogni riga inizia con cinque campi ora/data. Se è il crontab di sistema, il campo successivo è lo username associato con la voce. Il campo seguente sarà il comando da eseguire.

# esempio di file crontab utente
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 2 12 * 0,6 /usr/bin/findCampi
# esempio di file crontab di sistema \etc\crontab
# Minute Hour Day of Month Month Day of Week utente Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 2 12 * 0,6 root /usr/bin/findCampi

Esempio:

0 0,12 1 */2 * /sbin/ping -c 192.168.0.1; ls -la >>/var/log/cronrun
0 0,12 1 */2 * /sbin/ping -c 192.168.0.1; ls -la > /dev/null
0 0,12 1 */2 * /sbin/ping -c 192.168.0.1; ls -la > /dev/null 2>&1

Il primo esegue il comando ed invia l'output in append sul dile /var/log/cronrun, il secondo redirice lo standar output du /dev/null ed invia per email l'eventuale standard error. La terza riga esegue il comando, ridirige standard output e standard error su /dev/null quindi NON manda la mail.

Permessi e divieti di accesso al servizio crontab
Ci sono due file che abilitano la root (solo la root dovrebbe avere il permesso di editare o creare questi file) per autorizzare o vietare l'utilizzo dei servizi crontab agli utenti; essi sono: /etc/cron.allow -- Questo file in genere non esiste, lo dovete creare. Ogni voce che piazzerete in questo file coprirà quella inserita in /etc/cron.deny. Se il file /etc/cron.allow esiste, solo gli utenti specificati dentro posso usufruire del servizio crontab.
/etc/cron.deny -- Questo file esiste per default. In esso, ci metterete lo username delle persone a cui vietate l'utilizzo del servizio crontab.

rimontare una partizione in rw (aggiornamenti firewall)

mount -o remount,rw /

mount -o remount,ro /

cygwin/x

Connessione ad host (esempio nimba)

per connettersi via ssh da cygwinx ad una macchina linux (es nimba)

ssh -Y -l root nimba

gestione utenti


Creazione Utenti
addusr

Cambio password
passwd (nomeutente)  da utente root

find

Il comando find consente di selezionare un'ellenco di file in base a determinati criteri al esempio in base alla data di modifica. A tutti i file selezionati è inoltre concatenabile un comando.
Ad esempio il seguente comando copia tutti i files con estensione *.txt  in data  ntecedente fino ad un massimo di due giorni fa dal direttorio corrente al direttorio /tmp

Grand, we can now find files based on a subset of criteria. What would be even better is to apply some actions on those files. Action can be done with the use of /-exec/ switch.
We can now find .avi file that are newer that 15 days, in this example, we are going to move those file to another location: /my/new/movies . I consider that this directory already exist on your system.
Moving .avi files bigger than 700M and younger than 15 days to /my/new/movies can be done with:

-a -size +700M  indica tutti i file più grossi di 700 Mb
-mtime -2  indica tutti i file in data odierna, iedi e l'altroieri

find /home/sommaa -name '*.txt' -a -size +700M -mtime -15 -exec mv '{}' /tmp/ \;

ATTENZIONE l'uso di  *'{}'* e * \;* (c'e' uno spazio prima di \;).
*'{}'* viene sostituito con il nome del file trovato (i nomi) mentre  * \;*  indica la terminazione della sintassi del comando exec

grep

Se co sono troppi file nel direttorio e la "grep testo * " va in errore è possibile usare il seguente comando:

1) find . -type f -exec grep  -l  testodacercare {} \;
2) find . -type f -exec grep      testodacercare {} \;

nella prima forma c'e' lìopzione -l che dice a grep di indicare solo il nome del file in cui ha trovato la stringa
nella seconda forma invece la grep stampa tutte le linee in cui l'ha trovata

sed

per togliere le linee di commento che iniziano con # in un file.

sed -e "/^#/d" -e -e "/^[ \t]*$/d" nomedelfile > nuovonome

scp


Per copiare file da una macchina all'altra Con il comando scp è possibile trasferire files da una macchina ad un'altra via ssh. La sintassi è

scp /tmp/IMAG* root@192.168.1.190:/tmp

dove IMAG* sono i files che desidero copiare e root@192.168.1.190 indica l'utente e l'host di destinazione.

Installazione server X

Ora che avete aggiunto ed aggiornato le repository per etch siete pronti per installare il server X digitando:

apt-get install xserver-xorg-core xorg

Alla fine dell'installazione, vi verrà chiesto di ripondere ad alcune domande relative alla configurazione di X. Non preoccupatevi di ripondere ora, esattamente a tutte le domande, poichè, in caso di problemi, potrete sempre riconfigurare X in un secondo momento con il comando dpkg-reconfigure xserver-xorg.

Installazione login manager

Installato X, è ora il momento di decidere quale login manager installare. Le principali alternative sono: xdm, gdm e kdm. Sceglietene uno e procedete con l'installazione del login manager.

- Se avete scelto gdm digitate:

apt-get install gdm

- Se avete scelto xdm digitate:

apt-get install xdm

- Se avete scelto kdm digitate:

apt-get install kdm

Installazione ambiente desktop

Ora che avete installato X ed un login manager, è il momento di scegliere quale ambiente desktop volete utilizzare sulla vostra etch. Le principali alternative sono: GNOME, KDE, Xfce, FLUXBOX. Scegliete quello che preferite, e procedete con l'installazione.

- Se decidete di installare GNOME digitate:

apt-get install gnome

In questo modo, verranno installati tutti i pacchetti per l'ambiende desktop gnome.

Se invece volete una installazione minimale di gnome digitate:

apt-get install gnome-core

- Se decidete di installare KDE digitate:

apt-get install kde

In questo modo, verranno installati tutti i pacchetti per l'ambiende desktop Kde.

Se invece volete una installazione minimale di Kde digitate:

apt-get install kde-core

- Se decidete di installare Xfce digitate:

apt-get install xfce4

In questo modo, verranno installati tutti i pacchetti per l'ambiende desktop Xfce, che di default è già molto leggero.

- Se decidete di installare FLUXBOX digitate:

apt-get install fluxbox

In questo modo, verranno installati tutti i pacchetti per l'ambiende desktop Fluxbox, che sicuramente è l'ambiente desktop più leggero disponibile.

Riavvio e test installazione

A questo punto, qualunque ambiente desktop avrete scelto, tutto è installato e configurato correttamente. Riavviate la vostra etch, e se l'installazione è andata a buon fine, troverete la schermata di login, dalla quale potrete entrare nel vostro ambiente desktop e gustarvi finalmente l'ultima release stable ufficiale del progetto Debian (Etch).

Nel caso in cui, non parta X, non allarmatevi, e provate a riconfigurarlo con il comando:

dpkg-reconfigure xserver-xorg

Oppure se sapete quello che fate, aiutandovi con il log di X (/var/log/Xorg.0.log), modificate manualmente il file di configurazione di X (/etc/X11/xorg.conf).