Criar regra de redirecionamento no ARR

maio 22nd, 2019 por franklin No comments »

Neste exemplo será criado o redirecionamento do site siteum.com.br do servidor1 para o servidor2

Passos:

  • No servidor onde está instalado o proxy, selecione o domínio, após clique em URL Rewrite
  • Após clique em Add Rule(s), e na janela que abrir clique em Reverse Proxy, e então ok.
  • Na nova janela, em Inbound Rules, insira o endereço para onde o site será redirecionado, no caso será para o servidor servidor2, informamos o endereço, sitedois.com.br
  • Marcamos a opção de rewrite na parte inferior, em Outbound Rules, o campo from deve ser habilitado para edição, deixamos o default, que agora deve ser sitedois.com.br
  • Em to, informamos siteum.com.br, então clicamos em ok Essa configuração de outbound é para a resposta do servidor servidor2, tudo que contiver o endereço sitedois.com.br irá para siteum.com.br, isso pode ser visualizado no código fonte do site, por exemplo.
  • Com as regras criadas, uma na parte do Inbound, e a outra no Outbound, clicamos 2x na regra que está no Outbound
  • No quadrante “Match”, alteramos onde diz “match the content within”, todas as opções devem ser selecionadas dentro drop down, com exceção da última, “use custom tags”. Feito isso clica-se em aplicar. Essa configuração faz o rewrite de todos os links no código fonte.

Configurar Application Request Routing para proxy

maio 22nd, 2019 por franklin No comments »
  • Instalar UrlRewrite: https://www.iis.net/downloads/microsoft/url-rewrite
  • Instalar o ARR(Application Request Routing): https://www.iis.net/downloads/microsoft/application-request-routing

    Após instalar abra o IIS, clique no servidor, no lado direito na parte de IIS, clique 2x em “Application Request Routing Cache” e então clique em “server proxy settings”, no menu no lado direito, marque a opção “enable proxy” e clique em aplicar.

    Para o proxy funcionar é necessário que o servidor de destino do redirecionamento tenha a opção de compactação de arquivos desabilitada (gzip desativado)

    Para sites que tenham regras de rewrite funcionem, é necessário alterar as opções abaixo:
  • No IIS, selecionar o servidor, na seção “editor de configurações”, clicar 2x
  • No editor de configurações, informar na parte superior, onde diz seção, o seguinte: system.webServer/proxy

    Na lista de opção alterar os itens
  1. preserverHostHeader: True
  2. reverseRewriteHostInResponseHeaders: False

Consultar restituição do imposto de renda

março 12th, 2019 por franklin No comments »

No link https://servicos.receita.fazenda.gov.br/Servicos/ConsRest/Atual.app/paginas/index.asp

Entra com teu cpf e digita o código de caracteres ao lado.

Calculando os feriados nacionais com PHP

março 8th, 2019 por franklin No comments »

Abaixo uma função que calcula uma lista de feriados nacionais do ano corrente até 2037. A mágica dos feriados dinâmicos, que tem como base a páscoa, é feita com a função easter_date() do PHP.



<?
function dias_feriados($ano = null){
  if ($ano === null){
    $ano = intval(date('Y'));
  }
 
  $pascoa     = easter_date($ano); // Limite entre 1970 a 2037 conforme 
 http://www.php.net/manual/pt_BR/function.easter-date.php
  $dia_pascoa = date('j', $pascoa);
  $mes_pascoa = date('n', $pascoa);
  $ano_pascoa = date('Y', $pascoa);
 
  $feriados = array(
    // Datas Fixas dos feriados brasileiros
    'Ano Novo' => mktime(0, 0, 0, 1,  1,   $ano), // Confraternização Universal - Lei nº 662, de 06/04/49
    'Tiradentes' => mktime(0, 0, 0, 4,  21,  $ano), // Tiradentes - Lei nº 662, de 06/04/49
    'Dia do Trabalhador' => mktime(0, 0, 0, 5,  1,   $ano), // Dia do Trabalhador - Lei nº 662, de 06/04/49
    'Independência do Brasil' => mktime(0, 0, 0, 9,  7,   $ano), // Dia da Independência - Lei nº 662, de 06/04/49
    'Nossa Senhora Aparecida' => mktime(0, 0, 0, 10,  12, $ano), // N. S. Aparecida - Lei nº 6802, de 30/06/80
    'Finados' => mktime(0, 0, 0, 11,  2,  $ano), // Todos os santos - Lei nº 662, de 06/04/49
    'Proclamação da República' => mktime(0, 0, 0, 11, 15,  $ano), // Proclamação da republica - Lei nº 662, de 06/04/49
    'Natal' => mktime(0, 0, 0, 12, 25,  $ano), // Natal - Lei nº 662, de 06/04/49
 
    // Essas datas dependem da páscoa
    'Segunda de Carnaval' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 48,  $ano_pascoa),//2ºferia Carnaval
    'Terça de Carnaval' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 47,  $ano_pascoa),//3ºferia Carnaval	
    'Sexta-feira da Paixão' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 2 ,  $ano_pascoa),//6ºfeira Santa  
    'Páscoa' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa     ,  $ano_pascoa),//Pascoa
    'Corpus Christi' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa + 60,  $ano_pascoa),//Corpus Cirist
  );
 
  asort($feriados);
 
  return $feriados;
}
 
$ano_=date("Y"); //ano corrente
for($i=$ano_; $i <= 2037; $i++){
	echo "=========== ANO $i ===========\n";
	foreach(dias_feriados($i) as $descricao => $data){
		echo date("d-m-Y",$data)." => $descricao\n";
	}
	echo "\n";
}
 
?>

Peguei a base do código de https://www.codigofonte.com.br/codigos/funcao-que-calcula-os-feriados-brasileiros-em-php

Desmarcar opção de ajustar automaticamente o horário de verão no Windows

outubro 21st, 2018 por franklin No comments »

Usei em servidores legados Windows 2003. Resumindo, para desmarcar a opção e ajustar a hora usei o comando abaixo.

reg.exe add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /f /v DisableAutoDaylightTimeSet /t REG_DWORD /d 1 && tzchange /c "Middle East Standard Time" && tzchange /c "E. South America Standard Time"

Ele cria um registro para desmarcar a opção, depois muda o GMT e depois volta o GMT para o da America do Sul. Ele tem que mudar o GMT senão não atualiza a hora.

Comando para pegar quantidades de processadores no Windows

outubro 15th, 2018 por franklin No comments »

Barbadinha 😀

echo %NUMBER_OF_PROCESSORS%

Pegar parte da string no prompt de comando do Windows

abril 6th, 2018 por franklin No comments »

O exemplo é para pegar somente o nome da pool de aplicativo do retorno do seguinte comando

C:\>appcmd list apppools /state:started /xml | findstr "APPPOOL.NAME"
    <APPPOOL APPPOOL.NAME="site1" PipelineMode="Integrated" RuntimeVersion="" state="Started" />
    <APPPOOL APPPOOL.NAME="site1" PipelineMode="Integrated" RuntimeVersion="" state="Started" />
    <APPPOOL APPPOOL.NAME="site1" PipelineMode="Integrated" RuntimeVersion="v4.0" state="Started" />

Para pegarmos somente o nome, podemos usar o seguinte

C:\>FOR /F delims^=^"^ tokens^=2 %i IN ('appcmd list apppools /state:started /xml ^| findstr "APPPOOL.NAME"') DO @ECHO %i
site1
site2
site3

onde delims é o delimitador que será quebrada a string e tokens é o número da coluna onde está a string que você quer, no nosso caso é a segunda coluna, conforme o primeiro comando deste exemplo, no final nós damos um DO para fazer alguma coisa com a saída do comando, no nosso caso nós só mostramos no prompt, mas poderiamos executar algum comando com base nessa saída, por exemplo.

Kill em vários processos no sql server usando o sqlcmd

outubro 4th, 2017 por franklin No comments »

Na verdade é um facilitador.
Só precisa alterar a query pra condição que tu quer, no meu caso é pegar todos os PIDs que não são do usuário SA.
O output disso vai para o path informado depois do ‘-o’, que são as linhas prontas com os comandos para dar kill nos processos filtrados, daí é só colar no sql management

sqlcmd -q "Select 'kill ' + cast(spid as varchar(10)) from master..sysprocesses where loginame != 'sa'" -o %homepath%\desktop\killPids.txt

Exemplo do conteúdo do arquivo killPids.txt

 
---------------
kill 1000      
kill 1001      
kill 1002      
kill 1003      
kill 1004      
kill 1005      
kill 1006      
kill 1007      
kill 1008

Tipo comando awk no Windows

setembro 12th, 2017 por franklin No comments »
for /f "tokens=2,5" %i in ('netstat -n -o ^| findstr /v "Active Proto"') do @echo Local Address = %i, PID = %j

Tokens diz quais as colunas que serão printadas do retorno do comando que está dentro do in.
Para a primeira coluna se usa %i, para a segunda %j, caso haja uma terceira, ela será %k

Mais detalhes com o comando

for /?

Link que me ajudou: https://superuser.com/questions/524822/awk-equivalent-functionality-on-windows

Apagar arquivos antigos e diretórios vazios com powershell

setembro 5th, 2017 por franklin No comments »

Apagar arquivos com mais de 31 dias
Substitua %diretorio% pelo diretório que deseja apagar o conteúdo antigo

Get-ChildItem %diretorio% -recurse | Where {!$_.PSIsContainer -and $_.LastWriteTime -lt (get-date).AddDays(-31)} | Remove-Item -whatif

Apagar diretórios vazios
Substitua %diretorio% pelo diretório que deseja apagar os diretórios vazios

Get-ChildItem %diretorio% -recurse | Where {$_.PSIsContainer -and @(Get-ChildItem -Lit $_.Fullname -r | Where {!$_.PSIsContainer}).Length -eq 0} |Remove-Item -recurse -whatif

Lembrando que o parâmetro -whatif no final simula o que aconteceria se o comando fosse realmente executado. Para ele ser realmente executado, remova o -whatif do final

Referência: https://stackoverflow.com/questions/1575493/how-to-delete-empty-subfolders-with-powershell