yad-clamav

Publicado por Fernando T. Da Silva (última atualização em 15/04/2026)

[ Hits: 52 ]

Homepage: http://meumundotux.blogspot.com.br/

Download yad-clamav2.tgz




Script feito em yad para escanear arquivos e pastas facilmente com melhorias em relação ao zclamav em zenity.

  



Esconder código-fonte

#!/bin/bash

# Função para garantir que a barra pulse sem parar
run_scan() {
  local cmd="$1"
  (
    # Inicia o clamscan em background
    eval "$cmd" > /tmp/clamav.log 2>&1 &
    scan_pid=$!
    
    # Loop de pulsação manual para o YAD (0.1s)
    while kill -0 $scan_pid 2>/dev/null; do
      echo "pulsate"
      sleep 0.1
    done
    echo "100%" 
  ) | yad --progress --title "Yad Clamav - Escaneando" \
      --text "<b>Analisando arquivos... por favor aguarde.</b>" \
      --pulsate --auto-close --center --width=450 --window-icon="security-high"
}

while true; do
  # Menu principal simplificado para evitar erro de parsing do Shell
  choice=$(yad --width=700 --height=350 --list --center \
    --title="Yad Clamav Pro" --window-icon="security-high" \
    --fontname="Sans 12" \
    --text="<span size='x-large'><b>Menu de Segurança ClamAV</b></span>" \
    --column="Ícone:IMG" --column="Opção" \
    "document-open" "Escanear arquivos" \
    "folder" "Escanear um diretório" \
    "folder-remote" "Escanear diretório não recursivo" \
    "system-software-update" "Atualizar base de dados" \
    "help-about" "Versão da base de dados" \
    "help-browser" "Ajuda" \
    "application-exit" "Sair" \
    --button="OK:0" --button="Sair:1" --print-column=2 --separator="")

  # Verifica se o usuário fechou a janela ou clicou em Sair
  [ $? -ne 0 ] || [ -z "$choice" ] || [ "$choice" = "Sair" ] && break

  case "${choice}" in
    "Escanear arquivos")
      # 1. Usamos a quebra de linha (\n) como separador para facilitar a leitura
  files=$(yad --file-selection --multiple --separator='\n' --center --width=1000 --height=600 --title="Selecionar Arquivos")
  
  if [ -n "$files" ]; then
    # 2. Salvamos a lista de arquivos em um arquivo temporário
    echo -e "$files" > /tmp/lista_para_scan.txt
    
    # 3. Usamos a flag --file-list do clamscan para ler todos os arquivos da lista
    run_scan "clamscan --bell -i -r -l /tmp/clamav.log --file-list=/tmp/lista_para_scan.txt"
    
    yad --title="Resultado" --text-info --filename=/tmp/clamav.log --width=800 --height=600 --center --fontname="Sans 14"
      fi
      ;;

    "Escanear um diretório")
      files=$(yad --file-selection --directory --center --width=1000 --height=600  --title="Selecionar Pasta")
      if [ -n "$files" ]; then
        run_scan "clamscan --bell -i -r -l /tmp/clamav.log \"$files\""
        yad --title="Resultado" --text-info --filename=/tmp/clamav.log --width=800 --height=600 --center --fontname="Sans 14"
      fi
      ;;

    "Escanear diretório não recursivo")
      files=$(yad --file-selection --directory --center --width=1000 --height=600 --title="Selecionar Pasta")
      if [ -n "$files" ]; then
        run_scan "clamscan --bell -i -l /tmp/clamav.log \"$files\""
        yad --title="Resultado" --text-info --filename=/tmp/clamav.log --width=800 --height=600 --center --fontname="Sans 14"
      fi
      ;;

    "Atualizar base de dados")
      xterm -g 60x15 -T "Atualizando ClamAV" -fa 'Monospace' -fs 12 -e "sudo freshclam; echo 'Concluído. Pressione Enter...'; read"
      ;;

    "Versão da base de dados")
      freshclam -V > /tmp/base
      yad --title "Versão" --text-info --filename=/tmp/base --width=400 --height=200 --center --fontname="Sans 14"
      rm -f /tmp/base
      ;;

    "Ajuda")
      yad --title "Ajuda" --text-info --filename=/usr/share/doc/yad-clamav-ajuda.txt --width=1000 --height=600 --center --fontname="Sans 14"
      ;;
  esac
done

exit 0

Scripts recomendados

Digger

Instalação de servidor Squid rápido e fácil

Atualisar e instalar pacotes no sistema.

Compilador SH-Compiler usando GCC 4.6 no Debian Wheezy

Trocar wallpaper (papel de parede) do Gnome


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts