El teu blog de Linux en català

Una de les grans possibilitats que ofereix Nautilus (el navegador de fitxers de GNOME), és l’afegit de fer servir els anomenats scripts. Un script sol ser un mini-programa que permet fer tasques concretes com podrien ser conversions directes entre formats d’imatge o vídeo, descarregar subtítols d’un fitxer de vídeo, crear un paquet precompilat .deb o .rpm, etc.

Podeu veure i descarregar molts scripts a la pàgina Gnome-Look. En aquest cas ens centrarem en un script que permet escanejar per virus fitxers concrets. Per exemple, descarreguem un fitxer del Word i volem comprovar si té virus. Doncs només fent clic dret sobre el fitxer, podrem seleccionar l’opció d’escanejar el fitxer en cerca de virus.

La instal·lació requereix els següents passos:

  1. Instal·leu el paquet clamav i zenity des del vostre gestor de paquets (clamav és un antivirus per a GNU/Linux que també té versió per a Windows.
  2. Obriu una terminal i creeu el fitxer virus-scan:
  3. gedit ~/.gnome2/nautilus-scripts/cerca-virus

  4. Copíeu a dins el següent:
  5. #!/bin/bash
    #
    # Nautilus anti-virus scanner script v1.2 – Uses Clam Anti-virus
    # Written by Robert Pectol, December 2005 – http://rob.pectol.com
    #
    # This program is free software. It 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.
    ######################################################################

    # Set some variables used in the script
    files=$1
    if [ “$NAUTILUS_SCRIPT_CURRENT_URI” == “x-nautilus-desktop:///” ]; then
    files_path=$HOME”/Desktop”
    else
    files_path=`echo $NAUTILUS_SCRIPT_CURRENT_URI | sed -e ‘s/^file:////’`
    fi
    gui=`which zenity`
    vscan=`which clamscan`

    # Function to scan file(s)
    scan_it()
    {
    touch /tmp/scanresult
    if [ “$files_path” = “” ]; then
    # Script can run from launchers, scripts other than from Nautilus, etc. (doesn’t require $NAUTILUS_SCRIPT_CURRENT_URI)
    result=`$vscan -r “$files” –log=/tmp/scanresult | $gui –title “Virus Scanner” –progress
    –text=”Scanning $files…” –pulsate –auto-close; cat /tmp/scanresult` &> /dev/null
    else
    result=`$vscan -r “$files_path/$files” –log=/tmp/scanresult | $gui –title “Virus Scanner” –progress
    –text=”Scanning $files…” –pulsate –auto-close; cat /tmp/scanresult` &> /dev/null
    fi
    rm -f /tmp/scanresult &> /dev/null
    # Feedback – if scan ended with errors or was terminated prematurely…
    if [ “$result” = “” ]; then
    err_text=”S’han produït errors quan s’escanejava $files”
    errors
    fi
    # Feedback – if scan completed successfully…
    clean=`echo $result | grep ‘FOUND’`
    # Alter gui feedback according to presense/absense of virus(s) found during scan
    if [ “$clean” != “” ]; then
    $gui –title “S’han trobat virus!” –error –text=”$result” &> /dev/null
    else
    $gui –title “Resultats de l’escaneig” –info –text=”$result” & &> /dev/null
    fi
    }
    # Function to handle errors
    errors()
    {
    $gui –title “S’ha produït un error” –error –text=”$err_text” &> /dev/null
    exit 1
    }

    # Check for presense of required utilities
    if [[ -x “$vscan” && -x “$gui” ]]; then
    scan_it
    else
    if [ -x “$vscan” ]; then
    echo “No s’ha trobat Zenity al vostre sistema. Instal·leu-lo.”
    exit 1
    else
    err_text=”No s’ha trobat Clam Anti-virus al vostre sistema. Instal·leu-lo.”
    errors
    fi
    fi
    exit 0

  6. Per últim, doneu permisos d’execució al fitxer
  7. chmod 755 ~/.gnome2/nautilus-scripts/cerca-virus

Com podeu comprovar, els scripts de nautilus es desen a la carpeta .gnome2/nautilus-scripts del nostre usuari. Normalment podeu descarregar el fitxer d’script i desar-lo allà directament (sense necessitat de crear el fitxer vosaltres mateixos). Una vegada desat allà, us apareixerà directament la opció al menú del botó dret.

script-virus