terça-feira, 18 de outubro de 2022

Já aconteceu de você clicar no meu (Iniciar/Desligar) e o computador não ser desligado, pelo fato de o Windows ficar perguntando se você deseja salvar tal arquivo ou sistema em aberto?

As vezes esse processo é um tanto quanto chato!!! (Porém necessário). 
Mas para os apressados de Plantão o script abaixo resolve isso, desligando tudo sem perguntar nada e finalizando todos os processos do sistema.

Com esse script você terá 100% de certeza que o sistema foi desligado, não restando dúvidas nem remorsos.


Obs: Tal script pode ser combinado com alguma outra rotina já existente no sistema - Ex: agendador de tarefas e afins.

Segue o Script Apressadinho.bat

########################################

@echo OFF

shutdown -s -t 00 -f

########################################

Salve os comandos acima, no editor de textos como, Apressadinho.bat

Ao clicar em cima do arquivo salvo, ele executará o desligamento do PC, finalizando todos os processos que estão aberto no sistema operacional Windows.
Tal opção é realizada pelo parâmetro -f que complementa o comando shutdown.

Lista de parâmetros utilizados nesse script:

-s: (DESLIGAR O COMPUTADOR)

-t: (TEMPORIZADOR - TEMPO A DEFINIR, NESTE CASO UTILIZAMOS 00 OU SEJA DESLIAMENTO AUTOMÁTICO IMEDIATO) - PARA DESLIGAR O COMPUTADOR DAQUI Á UMA HORA DEVE-SE UTILIZAR -T 3600) - OBS: O TEMPO ESTÁ DEFINIDO EM SEGUNDOS.

-f: (FORÇA O DESLIGAMENTO DOS PROGRAMAS EM EXECUÇÃO)

Para maiores informações sobre o comando shutdown. (abra o cmd ou powershell) e digite: shutdown ?

Espero ter ajudado!


quarta-feira, 22 de dezembro de 2021

Testando conectividade de um determinado host com Batch Script

==================================================================
@echo off
:: criado por Milton Filho em 15/12/2021

:start
echo testing connection...

ping -n 1 www.google.com.br >nul
if errorlevel 1 (
  cls
  echo unreachable destination...
   goto end
)
cls
echo successful test...
goto end

:end
echo Close Script - Press Any Key.
pause>nul

exit

start

==================================================================

Este script Batch tem o objetivo de realizar o teste de conectividade entre um host específico, seja ele na rede LAN ou WAN.
O mesmo pode ser usado para testar se um determinado Host está ativo, sendo assim, se o mesmo estiver ativo, inicia-se o processo dentro do IF e suas instruções, que neste caso retorna a mensagem de OK, porém pode, e deve ser incluída outra  função com instruções diferentes de acordo com a necessidade específica de cada um.
Neste caso o objetivo principal deste script é limitar a execução de determinadas rotinas caso a conectividade não ocorra, em resumo o script irá funcionar apenas se o teste de conexão for bem sucedido!
Espero ter ajudado!

terça-feira, 5 de abril de 2011

Realizando (backup+compactação+envio) para servidor remoto MySQL.

#!/bin/bash
# JonMyBackup
# Script de Backup para MySQL
# 2009.11.26
# Modificado por Milton Caetano Filho 05/04/2011
# Adicionado função sendfiles para envio dos arquivos de backup remotamente entre dois servidores.
# OBS: É necessário chave RSA para conexao SSH entre os servidores sem PHRASE.
# - Efetua DUMP do banco MySQL em um arquivo .sql
# - Compacta em bzip2
# - Tira MD5Sum do arquivo, para checagem de integridade
# - Salva em pasta de backup com data e hora no filename.

# Data: Ano-Mes-Dia-Hora-Minuto-Segundo-Abreviação alfabética do fuso horário (por exemplo, BRT)
data=`date +%Y-%m-%d-%H-%M-%S-%Z`

# Variáveis de conexão
host="seuservidor"
user="seuusuario"
password="suasenha"
dbname="seubanco"

# Variáveis do script
backupdir="/bkp"
tmpdir="/tmp"
bz2file=$dbname-$data.tar.bz2
DUMP=$dbname.sql
md5file=$dbname-$data.md5

clear

dumpdb() {

# Checando se o diretório temporário existe. Se não, criando um.
if [ -e $tmpdir ]; then
echo 'DIRETORIO /TEMP OK'
else
echo 'CRIANDO DIRETORIO /TEMP'
mkdir $tmpdir
fi
# Executando DUMP
echo 'CRIANDO DUMP...'
/usr/bin/mysqldump --opt -h $host -u$user -p$password $dbname > $tmpdir/$DUMP

}

# Função para compactar o DUMP para tar.bz2, com a formatação correta da data no filename
bzip2compress() {

cd $tmpdir &&
echo 'COMPACTANDO DUMP...' &&
tar cjf $bz2file $DUMP &&
rm $DUMP

}

writemd5sum() {

echo 'CRIANDO MD5SUM...'
echo `md5sum $bz2file` > $md5file

}

moveFiles() {

# Checando se o diretório de Backup existe. Se não, criando um.
if [ -e $backupdir ]; then
echo 'DIRETORIO DE BACKUP OK'
else
echo 'CRIANDO DIRETORIO DE BACKUP'
mkdir $backupdir
fi
mv $tmpdir/$md5file $backupdir &&
mv $tmpdir/$bz2file $backupdir &&
echo 'REALIZADO BACKUP E ENVIADO PARA O DIRETORIO DE BACKUP!'

}

sendfiles() {

ping -q -c5 192.168.157.137 > /dev/null
if [ $? -eq 0 ]
then
scp $backupdir/* root@192.168.157.137:$backupdir
else
echo 'FALHA AO CONECTAR AO SERVIDOR REMOTO!'
sleep 2;
exit 1;
fi

}

main() {

dumpdb
bzip2compress
writemd5sum
moveFiles
sendfiles
}

main



Script original pode ser obitido em: Jonathas Rodrigues

segunda-feira, 4 de abril de 2011

Registrando data e hora logon e logoff do usuário com script Vbscript

Option Explicit

Dim objFSO, objLogFile, objNetwork, objShell, strText, intAns, strComputer, objWMIService
Dim intConstants, intTimeout, strTitle, intCount, blnLog, IPconfigSet, Ipconfig, IP
Dim strUserName, strComputerName, strIP, strShare, strLogFile
Dim fso, sf, StrNew
Const ForAppending = 8

Set fso = CreateObject("Scripting.FileSystemObject")

strComputer = "."
strShare = "\\SeuServidor\SuaPastaCompartilhada\"
strLogFile = "logonoff.txt"
intTimeout = 20

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objNetwork = CreateObject("Wscript.Network")
Set objShell = CreateObject("Wscript.Shell")

Set IPConfigSet = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
strUserName = objNetwork.UserName
strComputerName = objNetwork.ComputerName

'For Each IPConfig in IPConfigSet
' If Not IsNull(IPConfig.IPAddress) Then
' For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
' IP = IPConfig.IPAddress(i)
' Next
' End If
'Next

If objFSO.FolderExists(strShare) Then
On Error Resume Next
Set objLogFile = objFSO.OpenTextFile(strShare & "\" & strLogFile, 8, True, 0)
If Err.Number = 0 Then
intCount = 1
blnLog = False
Do Until intCount = 3
objLogFile.WriteLine "Logon " & Now & " " & strComputerName & " " & strUserName '& " com o ip " & IP'
If Err.Number = 0 Then
intCount = 3
blnLog = True
Else
Err.Clear
intCount = intCount + 1
If Wscript.Version > 5 Then
Wscript.Sleep 200
End If
End If
Loop
' On Error GoTo 0
End If
End If

Dim fa, fb, f, s, OpSysSet, i

Set objFSO = Nothing
Set objNetwork = Nothing
Set objShell = Nothing

Wscript.Quit


Para capturar o logon salve o código acima com o nome logon.vbs e para logoff salve como logoff.vbs

Na máquina local clica no menu: iniciar > executar: Em seguida digite:
gpedit.msc
Logo após vá em configurações de usuário e selecione Script de Logon/Logoff
Ao lado direito irá aparecer dois campos Logon/Logoff clica com o botao direito vá em propriedades, em seguida selecione o script na pasta de Logon e Logon.
Onde SeuServidor\SuaPastaCompartilhada deve ser substituido por uma pasta na rede compartilhada ou local.
Obs: Altere a linha 44 referente A mensagem de gravação
para Logoff.

quarta-feira, 30 de março de 2011

Executando Backup do Mysql via linha de comando.

Para realizar o backup de uma base de dados Mysql utilize o comando abaixo:

mysqldump -u root -p seubanco > seubanco.dump

Será realizado o Backup da base de dados selecionada.

Para restaurar o backup realizar o processo inverse execute o comando abaixo:

mysqldump -u root -p seubanco < seubanco.dump

Pronto sua base de dados será restaurada !
Aonde seubanco e o user root devem ser alterados de acordo com sua necessidade.
Obs: Tenha cuidado ao lidar com banco de dados, em SQL não existe Crtl+Z

Referencias: Clique aqui

Executando programas e Jobs como administrador via Script VBscript

Este exemplo a conta admin para abrir o Notepad
Para maiores informações consulte a sintaxe do comando runas "runas ?"
Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "runas /noprofile /user:seudominio\seuusuario ""notepad"
WScript.Sleep 100
' Não retire o til "~"
oShell.Sendkeys "suasenha~"
Wscript.Quit

Obs: Salve o arquivo com a extensão .vbs

Atualizando as regras do dominio via Script Python e VBscript

Salve o código abaixo com a extensão .py
Obs: É necessario tem o python instalado na máquina.

#!/usr/bin/env python
import os;
os.system("gpupdate /force");


O código abaixo faz a mesma coisa porém utilizando o VBscript da Microsoft.
Obs: Não é necessário instalar o VBscript ele é nátivo dos sistemas Windows.

set Objescreve = createobject ("wscript.shell")
objescreve.run "cmd.exe"
wscript.sleep 200
objescreve.sendkeys "gpupdate /force"
objescreve.sendkeys "{enter}"


Salve o arquivo com a extensão .vbs

É isso ai pessoal, espero ter ajudado.

domingo, 27 de março de 2011

Incluindo lista de IP's nos arquivos de bloqueio do Squid automaticamente

#!/bin/bash
# AUTOR MILTON CAETANO FILHO
# ESTE SCRIPT INCLUI UMA DETERMINADA SEQUENCIA DE ENDERECOS IPS NO ARQUIVO DE BLOQUEIO DO SQUID
# O MESMO FACILITA A INCLUSAO AUTOMATICA SEM QUE SEJA NECESSARIO DIGITAR MANUALMENTE

# CONSTANTES DO SISTEMA DEVEM SER ALTERADAS DE ACORDO COM A SUA NECESSIDADE
# NESTE CASO PRECISAMOS ISOLAR O IP 167.3.1.243 ATE O IP 167.3.2.26, OS DEMAIS IP NAO DEVEM CONSTAR NA LISTA DE BLOQUEIO

IPS ()
{
# IP INICIAL 167.3.1.242 IP FINAL 167.3.2.26

ip="167.3.1.";
ip2="167.3.2.";
x=242;
y=12;
x1=0;
y1=26;
INSERE;
}

INSERE ()
{
for ((i=1;i<=y;i++)) do echo $ip$(($x+i)) >> /etc/squid/ips_bloqueados.txt;
done
for ((j=1;j<=y1;j++)) do echo $ip2$(($x1+j)) >> /etc/squid/ips_bloqueados.txt;
done
}
IPS;

Removendo Arquivos com extensões maliciosas, compartilhando SAMBA

#!/bin/bash
#Arquivo criado para deletar arquivos com a extensão .exe .cmd .bat .pif .aa .js .vbs .src .inf
#Criado por Milton Caetano Filho

deleta_software()
{
cd /home/software;
rm -f [a-zA-Z0-9]*.exe *.cmd *.bat *.pif *.inf *.com *.src *.vbs *.js *.aa;
}

deleta_programacao()
{
cd /home/programacao;
rm -f [a-zA-Z0-9]*.exe *.cmd *.bat *.pif *.inf *.com *.src *.vbs *.js *.aa;
}

deleta_software
deleta_programacao

Limpando as linhas com comentário no arquivo squid.conf

egrep -v "^#|^$" squid.conf.original > squid.conf

quinta-feira, 24 de março de 2011

Shell Script + SQUID incluindo expressoes e sites de forma automatica

#!/bin/bash
# AUTOR MILTON CAETANO FILHO
# ESSE SCRIPT INSERE EXPRESSOES E SITES PARA SEREM LIBERADOS OU BLOQUEADOS NO SERVIDOR PROXY

goback()
{
echo 'DESEJA BLOQUEAR MAIS UM SITE? [s/n]';
read opcao
case $opcao in
s) main ;;
n) clear ; exit ;;
*) "COMANDO DESCONHECIDO." ; echo ; main ;;
esac
}

main()
{
clear
echo 'DIGITE O SITE OU EXPRESSAO PARA SER BLOQUEADO';
read site
echo $site >> /etc/squid/acls/block_string_nivel3.txt;
squid -k reconfigure;
echo 'SITE INSERIDO COM SUCESSO!';
sleep 1;
goback;
}
main

Já aconteceu de você clicar no meu (Iniciar/Desligar) e o computador não ser desligado, pelo fato de o Windows ficar perguntando se você des...