mediafire.com/file/pz93ofnhbw1c0gs/METODO_V2RAY_%2528FOGO_NO_PARQUINHO%2529.zip/file -Desligar CF dos dominios! -BACKUP ---> script->10->10->7 | /etc/v2ray/config.json | v2Back_n_IPTV (| ./v2.sh) ... So fazer a remocao dos user, de fato, depois de transferi o vps e pa -Se for venda de VPS, injetar 10 uuid Worms na maq do cli /etc/v2ray/config.json :) -Atentar ao fato de que a CDN queima IP, por isso a VPS tem que estar em uma plataforma, e prover servicos, que possam ter as VPS destruidas para renovacao de IP. -v2ray VPS need be install WO IPV6, with 1.1.1.1/32 CIDIR ip to invalid update on this. After this, change to MANUAL NETPLAN scheme. See FTP paste! This /32 install model, already will creat an default structures NETPLAN .yaml. Simply see Vultr 'our networking configuration tips' and paste this shit xD -CAUTION TO RESTART VPS! AWAYS stop script, stop v2ray(on v2ray cmd) and set again passwd! this shit is constantly fuckng root password(add this UNCHAGE to some script)! Remember to ban BTT on v2ray app! - To ANY IO error on app during conection. VeriFY CDN! -Rebooting this VPS can cause fuck(ATT ON PASSWD LOOP ALSO!) to networking. Cuz v2ray depends on DNS, n wrong restart this shit fuck the DNS sys on vps :P -/\So much accessess on same link can fuck this shit traffic out. /\ BEGIN -------------------------------------- Fastly so da 50usd free(+-250gb)... ai tem q ir fazendo conta https://manage.fastly.com/auth/sign-in ----------- NOVO METODO NAO PRECISA DE DOMINIO!! -Poe um "dominio" fake la em "Domains" com extensao .com ou .xyz . no meu caso criei alexxx.xyz -no host poe apenas o ip da maquina e prossegue como antes normalmente ;) --------- ""Cria CNAME e aponta esse link j.sni.global.fastly.net ... depois que seta o script la e ta tudo SUCCESS, muda pra -> landing.filestack.com ... na CF"" -Scriptage deve comecar apos a configuracao da distribuicao do CDN(ja na parte do "Check Cache") -Fazer o procedimento de ate a metade do video ;). CDN Lbspybot94))))0 -------------------------------------- Lbspybot94))))0> sobralluiz3231@outlook.com infraestructure-leadership,, -Criacao de conta/distribuicao e Outlook deve ser feita em MAQUINA+MAC/BROWSER LIMPOS, em IP 3g ou diferenciado e com dominio/paísVPS novo(pode usar msm conjunto de dominios se mudar pais da VPS)! Esse dominio temque ter o CACHE PURGADO(la na CF)! Ou seja, antes de abrir o NAVEGADOR(Brave em experimento) LIMPO(dados de todo o tempo limpos): -Limpar maquina com Ccleaner PRO(depois Brave com crtl+del ALL), trabalhar mudanca de MAC com TMAC e Mudar IP/PAIS de VPS(destruir vps Vultr p muda ip/rede/pais da VPS) CF domínio tipo A com IP da vps Proxy das operadoras TIM EXPIRADO = js-agent.newrelic.com 151.101.2.133 151.101.66.133 151.101.130.133 151.101.194.133 TIM -> SNI V2RAY PEGANDO *sni*: giphy.com *Tim saldo válida* *Sejam felizes* CLARO = westcoastkids.ca VIVO = 151.101.2.133 landing.filestack.com 146.75.122.133 104.18.7.41 172.64.150.8 easy spotify SNI -> landing.filestack.com Vcl da cdn if (req.http.Upgrade) { return (upgrade); } SCRIPTING -------------------------------------- -Por junto qualquer WebS/S80 que seja de payload versatil(aquelas que podem ser alteradas sem trocar IP c vendor). Ex.: TIM DAT.EXP. & VIVO WebSS80/80 -Usar SCRIPT SOMENTE pra configurar[1][2][4], adicionar[5], eliminar(so o q esta listado no Kiritoº)[6] e consultar dias[7]. -Consultar UUID[7] para apagar user através da chave no /etc/v2ray/config.json e dar restart v2ray(nao precisa apagar do script, pode por varios user igual la xD). - esse file tb faz o BACKUP dos user la do block /\ - cheaterEmail.sh filtra log para que seja mostrado a "quantidade de IPs" conectadas à 1 'email'. e vai expor o primeiro 'email' que possui mais de um IP. e armazenar ele no file ./emailprefix - getUUID.sh imprime o id associado a esse email(do emailprefix), oriundos do /etc/v2ray/config.json. E, esse mesmo script tambem pode zerar e reiniciar o v2ray, caso altere algum UUID. A operacao do conjunto consiste em verificar o `mail` que tem mais de uma conexao simultanea(cheaterEmail.sh), injeta-la no ./emailprefix, e, depois que o email estiver formatado nesse ./emailprefix(1 mail so), lanca getUUID.sh pra pegar o UUID do email que ta la dento *Loop do script rodara de 1 em 1m. pois o resultado é o null do UUID, "bloqueando" o acesso do usuario. /var/log/v2ray/acesss.log shows live user logon by e-mail and (xxx).(xxx).(xxx).xxx set lines. ao qual qualque (xxx) é diferente na medida em que é outro device entra com mesmo e-mail user E em rede/antena mais distante, portanto se ler access.log e identificar entradas do mesmo e-mail mas com (xxx) diferente, significa que outro device esta logando com o mesmo e-mail/UUID. BACKUPING/Ciclo da CDN ------------------------------------------- - Its made by Saving n transplanting the /etc/v2ray/config.json big user(only) block to the new generated config.json(new path and domain), n restart v2ray service. After that its necessary to instruct all clients(and revs) to change Path and Domain in their NapsternetV v2ray config ;) - ./v2Back_n_IPTV is the ethernal moving file xDDD dont erase it --------------------------------- CODE ----------------------- ############# WPANEL _V2 USER LOOKUP/EXCLUSING ############## -Deixar criado um `./v2List.sh>./v2snap` em tempo de outrora. Pra em tempo presente criar o `./v2List.sh>./v2snap2` e usar ./v2SnapCheck.sh pra ver os q tinha em outrora q n tem mais xD -Os users novos, que aparecerão no snap atual(./v2List.sh), estaão posicionados abaixo do último user, não excluido, do snap anterior(./v2snap). -------------- LISTA '_V2'/'_V2' USERS IN WPANEL -------------- cat v2List.sh #!/bin/bash # Defina o caminho para o arquivo /etc/passwd passwd_file="/etc/passwd" # Inicialize uma variável para contar os usuários count=0 # Use um loop while para ler cada linha do arquivo /etc/passwd while IFS= read -r line; do username=$(echo "$line" | cut -d: -f1) if [[ "$username" == *_v2* || "$username" == *_V2* ]]; then echo "$username" chage -l "$username" | grep "Account expires" | cut -d: -f2- | sed 's/^[[:space:]]*//' ((count++)) fi done < "$passwd_file" # Imprima o número total de usuários encontrados echo "Número total de usuários que terminam em '_v2' ou '_V2': $count" -------------- ANALIZA ./v2snap E ./v2snap2 PRA VER QUAIS ESTAO EM 1 E N EM 2 -------------- ** Ou seja, os user que os rev apagaram desde a criacao do v2snap. ** Antes de executar tem que criar o v2snap2 ;) cat v2SnapCheck.sh #!/bin/bash # Define os caminhos dos arquivos v2snap e v2snap2 file1="./v2snap" file2="./v2snap2" # Verifica se os arquivos existem if [ ! -e "$file1" ] || [ ! -e "$file2" ]; then echo "Um ou ambos os arquivos não existem." exit 1 fi # Lê os usuários do arquivo v2snap e armazena em uma matriz mapfile -t users_file1 < "$file1" # Lê os usuários do arquivo v2snap2 e armazena em outra matriz mapfile -t users_file2 < "$file2" # Percorre a matriz de usuários do v2snap for user1 in "${users_file1[@]}"; do # Verifica se o usuário não está presente no v2snap2 if ! [[ " ${users_file2[*]} " =~ " $user1 " ]]; then echo "Usuário exclusivo em $file1: $user1" fi done # Finaliza o script exit 0 ############# VERIFICAR CONEXOES SIMULTANEAS SCRIPTING ############## Analisa as linhas de LOG e faz o procedimento para, dar como saida, as classes de ip(XXX.XXX.XXX.xxx) diferente, que o mesmo usuario acessou o server GERA FILE DE LINHAS do LOG -> 'tail -n 600 /var/log/v2ray/access.log > ./LINHAS' \/ linha abaixo que dev ser acompanhada echo $first_multiple_ips_group"@gmail.com" > ./emailprefix cat cheaterEmail.sh #!/bin/bash # Lê as linhas do arquivo "LINHAS" no mesmo diretório do script tail -n 600 /var/log/v2ray/access.log > ./LINHAS mapfile -t lines < "$(dirname "${BASH_SOURCE[0]}")/LINHAS" declare -A grouped_results first_multiple_ips_group="" for line in "${lines[@]}"; do # Extrair endereço IP da terceira coluna ip=$(echo $line | awk '{split($3, ip, ":"); print ip[1]}') # Verificar se o IP está no formato xxx.xxx.xxx.xxx if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then # Extrair as três partes do endereço IP e juntá-las ip_parts=$(echo $ip | awk -F "." '{print $1"."$2"."$3}') # Extrair parte antes do "@" do endereço de e-mail email_prefix=$(echo $line | awk -F "@" '{print $1}' | awk '{print $NF}') # Verificar se o email_prefix tem 10 caracteres e não contém caracteres especiais if [[ ${#email_prefix} -eq 10 && ! "$email_prefix" =~ [^a-zA-Z0-9] ]]; then # Agrupar resultados com base no email_prefix if [ -z "${grouped_results[$email_prefix]}" ]; then grouped_results["$email_prefix"]=$ip_parts else # Adicionar IP apenas se ainda não foi incluído if [[ ! "${grouped_results[$email_prefix]}" =~ "$ip_parts" ]]; then grouped_results["$email_prefix"]+=" $ip_parts" fi fi # Verificar se este grupo tem mais de 1 IP e guardar o prefixo do e-mail if [ $(echo "${grouped_results[$email_prefix]}" | wc -w) -gt 1 ]; then if [ -z "$first_multiple_ips_group" ]; then first_multiple_ips_group="$email_prefix" fi fi fi fi done # Exibir os resultados agrupados for email_prefix in "${!grouped_results[@]}"; do echo "Email Prefix: $email_prefix" echo "IPs: ${grouped_results[$email_prefix]}" echo "----------------------" done # Exibir o Email Prefix do primeiro grupo com mais de 1 IP if [ -n "$first_multiple_ips_group" ]; then echo "Primeiro grupo com mais de 1 IPs: $first_multiple_ips_group" echo $first_multiple_ips_group"@gmail.com" > ./emailprefix else echo "Nenhum grupo encontrado com mais de 1 IPs." echo "" > ./emailprefix fi -------------- PEGA UUID DO user contido em ./emailprefix SCRIPTING -------------- cat getUUID.sh #!/bin/bash # Lê o conteúdo do arquivo de texto emailprefix email=$(cat ./emailprefix) # Localiza o "id" com base no email na seção "inbounds" do JSON id=$(jq -r --arg email "$email" '.inbounds[].settings.clients[] | select(.email == $email) | .id' /etc/v2ray/config.json) echo "O id correspondente ao email $email é: $id" ############ \/\/\/ SEGMENTO OPCIONAL PARA SUBSTITUICAO E RESTART \/\/\/ ################## # Substitui a ocorrência do ID pelo valor desejado no JSON jq --arg email "$email" --arg new_id "00000000-0000-0000-0000-000000000000" ' .inbounds[].settings.clients |= map(if .email == $email then .id = $new_id else . end) ' /etc/v2ray/config.json > /etc/v2ray/config.json.tmp mv /etc/v2ray/config.json.tmp /etc/v2ray/config.json echo "ID substituído por 00000000-0000-0000-0000-000000000000 no JSON." systemctl restart v2ray else echo "Nenhum id encontrado para o email $email na seção 'inbounds'." fi ############# RECEPTOR SCRIPTING ############## passwd.sh #!/bin/bash sleep 2 echo lbadwath sleep 2 echo lbadwath scriptGet.sh #!/bin/bash while : do ./passwd.sh | passwd ./getVPSFile.sh | yafc ftpuser:lbadwath@192.99.252.3 chmod 777 ./backup.vps ./restoremacro.sh | menu #./limiterOvpn.sh sync; echo 1 > /proc/sys/vm/drop_caches sleep 5 sync; echo 2 > /proc/sys/vm/drop_caches done getVPSFile.sh #!/bin/bash sleep 1 echo "ls" sleep 1 echo "get backup.vps" sleep 1 echo "y" sleep 1 echo "exit" restoremacro.sh #!/bin/bash echo "15" echo "2" sleep 4 echo -ne "\n" echo "0" echo "0" echo "0" ############# SUBTRATOR DE DIAS TXT(script) BACKUP / IPTV USERS ############## ########### ESSE SUBTRATOR IMPRIME A SUBTRACAO ############ É usado por pipeamento: cat v2Back_n_IPTV | ./v2BackupPipeSubtrator.sh cat ./v2BackupPipeSubtrator.sh #!/bin/bash # Loop para processar cada linha da entrada while IFS= read -r linha; do valor_coluna1=$(echo "$linha" | awk '{print $1}') valor_colchetes=$(echo "$linha" | awk -F'[][]' '{print $2}') novo_valor_colchetes=$((valor_colchetes - 1)) linha_modificada=$(echo "$linha" | sed "s/\[$valor_colchetes\]/\[$novo_valor_colchetes\]/") echo "$linha_modificada" done ########### ESSE SUBTRATOR MUDA O FILE ./v2Back_n_IPTV COM SUBTRACAO ############ É usado por pipeamento: cat v2Back_n_IPTV | ./pipeSubtrator.sh cat pipeSubtrator.sh #!/bin/bash # Nome do arquivo de entrada arquivo_origem="./v2Back_n_IPTV" # Nome do arquivo temporário arquivo_temporario="temp.txt" # Loop para processar cada linha do arquivo de origem while IFS= read -r linha; do valor_coluna1=$(echo "$linha" | awk '{print $1}') valor_colchetes=$(echo "$linha" | awk -F'[][]' '{print $2}') novo_valor_colchetes=$((valor_colchetes - 1)) linha_modificada=$(echo "$linha" | sed "s/\[$valor_colchetes\]/\[$novo_valor_colchetes\]/") echo "$linha_modificada" done < "$arquivo_origem" > "$arquivo_temporario" # Substituir o arquivo de origem pelo arquivo temporário mv "$arquivo_temporario" "$arquivo_origem" -------- REMOVE LINHAS EM BRANCO DO ./v2Back_n_IPTV --------- cat removeBlank.sh #!/bin/bash # Nome do arquivo de entrada arquivo_origem="./v2Back_n_IPTV" # Nome do arquivo temporário arquivo_temporario="temp.txt" # Remove linhas em branco do arquivo de origem grep -v '^$' "$arquivo_origem" > "$arquivo_temporario" # Substituir o arquivo de origem pelo arquivo temporário mv "$arquivo_temporario" "$arquivo_origem" # Mensagem de conclusão echo "Linhas em branco removidas com sucesso do arquivo $arquivo_origem." ########### RELOGIO QPRA O ./pipeSubtrator.sh + ./removeBlank.sh ############ -crontab -e -add linha à seguir, que programa o bang pra 1:15AM todo dia \/ 15 1 * * * /bin/cat v2Back_n_IPTV | ./pipeSubtrator.sh 16 1 * * * /bin/cat v2Back_n_IPTV | ./removeBlank.sh ########### EXTERNA LINHAS EXPIRADAS ############ ./expirados.sh #!/bin/bash # Ler o conteúdo do arquivo v2Back_n_IPTV linha por linha while IFS= read -r line; do # Use um comando de expressão regular para extrair o valor entre colchetes value=$(echo "$line" | grep -oE '\[[0-9-]+\]' | tr -d '[]') # Verifique se o valor é menor ou igual a 0 if [ "$value" -le 0 ]; then echo "$line" fi done < v2Back_n_IPTV ########### EXIBE LINHAS COM DIAS <= 0 DO ./v2Back_n_IPTV ############ -É so usar ./exibeExp.sh no mesmo dir(sem pipeamento) cat exibeExp.sh #!/bin/bash # Nome do arquivo de entrada arquivo="./v2Back_n_IPTV" # Loop através das linhas do arquivo de entrada while IFS= read -r linha; do # Use um comando regex para encontrar os valores entre colchetes valores_entre_colchetes=$(echo "$linha" | grep -o '\[[^]]*\]') # Loop através dos valores encontrados while IFS= read -r valor; do # Remova colchetes e verifique se o valor é menor que ou igual a 0 valor_sem_colchetes=$(echo "$valor" | tr -d '[]') if [ "$valor_sem_colchetes" -le 0 ]; then # Se for menor ou igual a 0, exiba essa linha echo "$linha" break fi done <<< "$valores_entre_colchetes" done < "$arquivo" ########### REMOVE LINHAS COM DIAS <= 0 DO ./v2Back_n_IPTV ############ -É so usar ./deleteExp.sh no mesmo dir(sem pipeamento) cat deleteExp.sh #!/bin/bash # Nome do arquivo de entrada arquivo="./v2Back_n_IPTV" # Crie um arquivo temporário para armazenar as linhas válidas tempfile=$(mktemp) # Loop através das linhas do arquivo de entrada while IFS= read -r linha; do # Use um comando regex para encontrar os valores entre colchetes valores_entre_colchetes=$(echo "$linha" | grep -o '\[[^]]*\]') # Loop através dos valores encontrados while IFS= read -r valor; do # Remova colchetes e verifique se o valor é menor que 0 valor_sem_colchetes=$(echo "$valor" | tr -d '[]') if [ "$valor_sem_colchetes" -le 0 ]; then # Se for menor que 0, não copie essa linha para o arquivo temporário continue 2 fi done <<< "$valores_entre_colchetes" # Se chegou aqui, a linha é válida, copie-a para o arquivo temporário echo "$linha" >> "$tempfile" done < "$arquivo" # Substitua o arquivo original pelo arquivo temporário mv "$tempfile" "$arquivo" # Exibindo o arquivo modificado cat "$arquivo" ########### ########### Extrai IDs de ./v2Back_n_IPTV e config.json ############ ########### printa uuids de ./bloco1.txt e ./bloco2.txt allUUID.sh ... | sort | uniq -c | awk '$1 == 1 {print $2}' <- printa somente as linhas únicas da saida do script ;) #!/bin/bash # Função para extrair e imprimir as strings do bloco1.txt extract_strings_from_bloco1() { while IFS="|" read -r uuid _; do # Remove espaços em branco no início e no fim da string uuid=$(echo "$uuid" | tr -d ' ') # Verifica se a string corresponde ao formato esperado if [[ $uuid =~ ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ]]; then echo "$uuid" fi done < bloco1.txt } # Função para extrair e imprimir as strings do bloco2.txt extract_strings_from_bloco2() { # Use grep com uma expressão regular para extrair as UUIDs grep -oE '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' bloco2.txt } # Chamando as funções para extrair e imprimir as strings echo "Strings do bloco1.txt:" extract_strings_from_bloco1 echo "Strings do bloco2.txt:" extract_strings_from_bloco2 ############ OU PELO CHATGPT ############ -Identifique todos os padroes "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" do arquivo de texto à seguir, e informe quais desses padroes aparecem apenas 1 vez: ARQUIVO C /etc/v2ray/config(only users) /n v2Back_n_IPTV -Converta esse código Python para Shell Script ------------- MISC COMANDOS --------------- timedatectl list-timezones sudo timedatectl set-timezone your_time_zone ------------ \O/\O/\O/\O/\O/\O V2 MENU \O/\O/\O/\O/\O/ ------------- ------------ \O/\O/\O/\O/\O/\O V2 MENU \O/\O/\O/\O/\O/ ------------- ------------ \O/\O/\O/\O/\O/\O V2 MENU \O/\O/\O/\O/\O/ ------------- ------------ \O/\O/\O/\O/\O/\O V2 MENU \O/\O/\O/\O/\O/ ------------- #!/bin/bash # Função para exibir o menu exibir_menu() { echo -e "\e[1;33m===== MENU v2Back_n_IPTV =====\e[0m" echo -e "\e[1;36m1. EXIBE LINHAS COM DIAS <= 0 DO ./v2Back_n_IPTVi\e[0m" echo -e "\e[1;36m2. REMOVE LINHAS COM DIAS <= 0 DO ./v2Back_n_IPTVi\e[0m" echo -e "\e[1;36m3. REMOVE LINHAS EM BRANCO DO ./v2Back_n_IPTV\e[0m" echo -e echo -e "\e[1;36m4. EXECUTA SUBTRACAO EM ./v2Back_n_IPTV\e[0m" echo -e "\e[1;36m5. IMPRIME O FILE ./v2Back_n_IPTV\e[0m" echo -e echo -e "\e[1;36m6. RELOGIO QPRA O ./pipeSubtrator.sh + ./removeBlank.sh\e[0m" echo -e echo -e "\e[1;33m===== AJUSTE DE LISTA =====\e[0m" echo -e "\e[1;36m7. Extrai IDs de ./v2Back_n_IPTV e config.json\e[0m" echo -e echo -e "\e[1;33m===== ONLINE/MULTICONN DETECTOR =====\e[0m" echo -e "\e[1;36m8. Extrai IDs de ./v2Back_n_IPTV e config.json\e[0m" echo -e echo -e "\e[1;33m===== FTP_RECEPTOR SCRIPTING INSTALL =====\e[0m" echo -e "\e[1;33m*install yafc n do manual exec to establish scriptting!*\e[0m" echo -e echo -e "\e[1;36m9. Deploy scriptGet getVPSFile restoremacro onOffLimiter\e[0m" echo -e "\e[1;36ma. Deploy passwd.sh for script cycle passwd restart :P\e[0m" echo -e "\e[1;33mb. Adjust /bin/limiter time 'sleep 5s'\e[0m" echo -e "\e[1;33m*Dont forget to check CHMOD777 all this shit*\e[0m" echo -e echo -e "\e[1;36m0. Sair\e[0m" echo -e "\e[1;33m================\e[0m" echo -n "Escolha uma opção: " } # Loop principal do menu while true; do exibir_menu read opcao case $opcao in 1) # Nome do arquivo de entrada arquivo="./v2Back_n_IPTV" # Loop através das linhas do arquivo de entrada while IFS= read -r linha; do # Use um comando regex para encontrar os valores entre colchetes valores_entre_colchetes=$(echo "$linha" | grep -o '\[[^]]*\]') # Loop através dos valores encontrados while IFS= read -r valor; do # Remova colchetes e verifique se o valor é menor que ou igual a 0 valor_sem_colchetes=$(echo "$valor" | tr -d '[]') if [ "$valor_sem_colchetes" -le 0 ]; then # Se for menor ou igual a 0, exiba essa linha echo "$linha" break fi done <<< "$valores_entre_colchetes" done < "$arquivo" read ;; 2) # Nome do arquivo de entrada arquivo="./v2Back_n_IPTV" # Crie um arquivo temporário para armazenar as linhas válidas tempfile=$(mktemp) # Loop através das linhas do arquivo de entrada while IFS= read -r linha; do # Use um comando regex para encontrar os valores entre colchetes valores_entre_colchetes=$(echo "$linha" | grep -o '\[[^]]*\]') # Loop através dos valores encontrados while IFS= read -r valor; do # Remova colchetes e verifique se o valor é menor que 0 valor_sem_colchetes=$(echo "$valor" | tr -d '[]') if [ "$valor_sem_colchetes" -le 0 ]; then # Se for menor que 0, não copie essa linha para o arquivo temporário continue 2 fi done <<< "$valores_entre_colchetes" # Se chegou aqui, a linha é válida, copie-a para o arquivo temporário echo "$linha" >> "$tempfile" done < "$arquivo" # Substitua o arquivo original pelo arquivo temporário mv "$tempfile" "$arquivo" # Exibindo o arquivo modificado cat "$arquivo" read ;; 3) # Nome do arquivo de entrada arquivo_origem="./v2Back_n_IPTV" # Nome do arquivo temporário arquivo_temporario="temp.txt" # Remove linhas em branco do arquivo de origem grep -v '^$' "$arquivo_origem" > "$arquivo_temporario" # Substituir o arquivo de origem pelo arquivo temporário mv "$arquivo_temporario" "$arquivo_origem" # Mensagem de conclusão echo "Linhas em branco removidas com sucesso do arquivo $arquivo_origem." ;; 4) cat v2Back_n_IPTV | ./pipeSubtrator.sh ;; 5) cat ./v2Back_n_IPTV read ;; 6) echo -e "\e[1;33mAdd linha à seguir, que programa o bang pra 1:15AM todo dia\e[0m" echo -e "\e[1;36m15 1 * * * /bin/cat v2Back_n_IPTV | ./pipeSubtrator.sh \e[0m" echo -e "\e[1;36m16 1 * * * ./removeBlank.sh\e[0m" echo -e "\nPressione qualquer tecla para executar CRONTAB -E..." echo " # Nome do arquivo de entrada arquivo_origem="./v2Back_n_IPTV" # Nome do arquivo temporário arquivo_temporario="temp.txt" # Remove linhas em branco do arquivo de origem grep -v '^$' "$arquivo_origem" > "$arquivo_temporario" # Substituir o arquivo de origem pelo arquivo temporário mv "$arquivo_temporario" "$arquivo_origem" # Mensagem de conclusão echo "Linhas em branco removidas com sucesso do arquivo $arquivo_origem." " > ./removeBlank.sh chmod 777 ./removeBlank.sh read crontab -e ;; 7) ./script2.sh # Substitua script2.sh pelo nome do seu segundo script ;; 8) ./script2.sh # Substitua script2.sh pelo nome do seu segundo script ;; 9) echo " #!/bin/bash while : do ./getVPSFile.sh | yafc ftpuser:'~L8z65xL=8y]!rs'@192.99.252.3 chmod 777 ./backup.vps ./restoremacro.sh | menu ./onOffLimiter.sh | menu ./passwd.sh | passwd sync; echo 1 > /proc/sys/vm/drop_caches sleep 8 sync; echo 2 > /proc/sys/vm/drop_caches done " > ./scriptGet.sh echo " #!/bin/bash sleep 1 echo \"ls\" sleep 1 echo \"get backup.vps\" sleep 1 echo \"y\" sleep 1 echo \"exit\" " > ./getVPSFile.sh echo " #!/bin/bash echo \"15\" echo \"2\" sleep 4 echo -ne \"\n\" echo \"0\" echo \"0\" echo \"0\" " > ./restoremacro.sh echo " #!/bin/bash echo \"17\" sleep 8 echo \"17\" sleep 3 echo \"0\" echo \"0\" echo \"0\" " > ./onOffLimiter.sh chmod 777 *.sh ;; a) echo "#!/bin/bash echo 'lbadwath' sleep 1 echo 'lbadwath' sleep 1 " > ./passwd.sh chmod 777 passwd.sh ;; 0) echo "Saindo..." exit 0 ;; *) echo "Opção inválida! Pressione Enter para continuar..." read ;; esac done