yad-clamav

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

[ Hits: 50 ]

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

Para quem esquece facil das coisas

Backup e restauração dos programas instalados em sistemas baseados em Debian

Atualizando o KDE

Seletor DOOM para Doomretro

Script de instalação para Firefox e Thunderbird - new release


  

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