Skip to content

Instantly share code, notes, and snippets.

View viniciusgonmelo's full-sized avatar

Vinicius G. Melo viniciusgonmelo

View GitHub Profile
@viniciusgonmelo
viniciusgonmelo / docker-git-server
Last active June 11, 2023 06:33
Servidor Git com Docker (Dockerfile e docker build/run)
# https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
FROM debian:11
LABEL name="git"
ARG SSH_PUB_KEY
RUN apt update && apt install openssh-server git -y
RUN useradd -rm -s /bin/bash git && echo 'git:git' | chpasswd
WORKDIR /home/git
USER git
RUN mkdir .ssh && chmod 700 .ssh && touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys && echo "$SSH_PUB_KEY" > .ssh/authorized_keys
@viniciusgonmelo
viniciusgonmelo / perl-regex.md
Last active May 12, 2023 05:13
Regex em Perl

Regex - Perl

Match

$string = "nome";
$string =~ m/nome/; # true

Não precisa do m se os delimitadores são / (padrão):

$string = "nome";
$string =~ /nome/;
@viniciusgonmelo
viniciusgonmelo / proxy-run-cmd.pl
Last active June 13, 2023 02:35
Configura um proxy para executar uma aplicação
#!/usr/bin/env perl
# Script: proxy-run-cmd.pl
# Descrição: Configura um proxy para executar uma aplicação
# o arquivo de configuração 'proxy-run-cmd.conf' deve estar no $HOME do usuário
# Exemplo de 'proxy-run-cmd.conf'
# nome_do_proxy=http://usuario@proxy:porta
# Exemplo de uso:
# ./proxy-run-cmd --proxy=PROXY_1 --cmd=chromium
@viniciusgonmelo
viniciusgonmelo / files_rhosts-bak
Last active June 13, 2023 02:34
Backup local de hosts remotos com rsync em Perl.
#!/usr/bin/env perl
# Script: files_rhosts-bak.pl
# Descrição: Backup de hosts remotos localmente
# o arquivo de configuração 'rhosts' deve estar no mesmo diretório do script
# os hosts remotos podem ser configurados em /root/.ssh/config ou $HOME/.ssh/config
# Exemplo de 'rhosts':
# RHOST_1=rhost-1:/home/usuario
# RHOST_2=USUARIO:SENHA@255.255.255.255:/home/usuario
# RHOST_3=rhost-3:/
@viniciusgonmelo
viniciusgonmelo / backup-home.pl
Last active June 13, 2023 04:09
Backup local do $HOME de usuários do sistema
#!/usr/bin/env perl
# Script para realizar backup do diretório home de um ou mais usuários utilizando rsync e tar.
# Exemplo de uso: ./backup-home usuario_1 usuario_2
# Será criado um novo backup .tgz para cada usuário informado em $backup_dir.
use 5.010;
use strict;
use warnings;
use DateTime;
@viniciusgonmelo
viniciusgonmelo / ufw-config.pl
Last active June 13, 2023 05:18
Configura o firewall com o ufw
#!/usr/bin/env perl
# Script: ufw-config
# Descrição: Configura o firewall com o ufw
use 5.010;
use strict;
use warnings;
use Carp qw(croak);
@viniciusgonmelo
viniciusgonmelo / shell-chatgpt
Last active June 13, 2023 02:40
Interação com o ChatGPT no shell
#!/usr/bin/env python3
# Script: shell_chatgpt.py
# Descrição: Interaja com o ChatGPT da OpenAI no shell
# Opções:
# -m, --model: Nome do modelo GPT a ser usado (padrão: "gpt-3.5-turbo").
# -t, --temperature: Valor da temperatura para controlar a aleatoriedade das respostas (padrão: 0.5).
import sys
import openai
@viniciusgonmelo
viniciusgonmelo / rm-duplicates.pl
Last active June 13, 2023 22:54
Remove arquivos duplicados em um ou mais diretórios
#!/usr/bin/env perl
# Script: rm-duplicates
# Descrição: Remove arquivos duplicados em um ou mais diretórios
# se nenhum diretório for fornecido, o diretório atual será utilizado.
# Exemplo de uso: ./rm-duplicates --dir=/caminho/do/diretório --dir=/caminho/de/outro/diretório
use 5.010;
use strict;
use warnings;
@viniciusgonmelo
viniciusgonmelo / term-screenshot.bash
Last active June 13, 2023 02:37
Tira screenshots ou grava gifs sem sair do terminal
#!/usr/bin/env bash
# Script: term-screenshot.bash
# Descrição: Captura a tela ou grava um gif em uma nova janela do terminal.
# Exemplos de uso:
# ./term-screenshot
# ./term-screenshot exemplo.png
# ./term-screenshot exemplo.gif
show_help() {
@viniciusgonmelo
viniciusgonmelo / exif-datetime.bash
Last active June 13, 2023 02:35
Usa o exiftool para extrair as datas dos metadados de arquivos.
#!/usr/bin/env bash
# Script: exif-datetime.bash
# Descrição: Usa o exiftool para extrair as datas dos metadados de arquivos.
# Exemplo de uso: ./exif-datetime arquivo.jpg
# Função para extrair metadados
get_metadata() {
exiftool -s -s -s -"${1}" "${FILE}"
}