VIP_2507


SUBMITTED BY: repremaq09

DATE: July 26, 2023, 4:40 a.m.

UPDATED: Oct. 13, 2024, 3:42 a.m.

FORMAT: Text only

SIZE: 16.1 kB

HITS: 556

  1. #!/bin/bash
  2. # Função para exibir o menu
  3. exibir_menu() {
  4. echo -e "\e[1;33m===== MENU v2Back_n_IPTV =====\e[0m"
  5. echo -e "\e[1;36m1. EXIBE LINHAS COM DIAS <= 0 DO ./v2Back_n_IPTVi\e[0m"
  6. echo -e "\e[1;36m2. REMOVE LINHAS COM DIAS <= 0 DO ./v2Back_n_IPTVi\e[0m"
  7. echo -e "\e[1;36m3. REMOVE LINHAS EM BRANCO DO ./v2Back_n_IPTV\e[0m"
  8. echo -e
  9. echo -e "\e[1;36m4. EXECUTA SUBTRACAO EM ./v2Back_n_IPTV\e[0m"
  10. echo -e "\e[1;36m5. IMPRIME O FILE ./v2Back_n_IPTV\e[0m"
  11. echo -e
  12. echo -e "\e[1;36m6. RELOGIO QPRA O ./pipeSubtrator.sh + ./removeBlank.sh\e[0m"
  13. echo -e
  14. echo -e "\e[1;33m====== WPANEL _V2 USER LOOKUP/OP =====\e[0m"
  15. echo -e "\e[1;33m*Its need ./v2snap(carregado em outrora) n ./v2snap2(carregado no momento da OP) files for OPs\e[0m"
  16. echo -e "\e[1;36ma. Imprimir ./v2snap(outrora)\e[0m"
  17. echo -e "\e[1;36mc. Carrega ./v2snap com WPanel _v2 users\e[0m"
  18. echo -e "\e[1;36mb. Listar _v2 live users e carrega ./v2snap2 for OP. Also check new created user(since last ./v2snap load)\e[0m"
  19. echo -e "\e[1;36md. (OP) Quais _v2 users foram apagados desde ./v2snap?\e[0m"
  20. echo -e "\e[1;33m***** SYNC DE CONEXAO V2 *****\e[0m"
  21. echo -e "\e[1;33mg. Deploy sUUID.sh script to UUID extraction OP\e[0m"
  22. echo -e "\e[1;36m7. OP Extrai IDs de ./v2Back_n_IPTV e config.json\e[0m"
  23. echo -e
  24. echo -e "\e[1;33m===== ONLINE/MULTICONN DETECTOR =====\e[0m"
  25. echo -e "\e[1;36m8. VERIFICAR CONEXOES SIMULTANEAS SCRIPTING******\e[0m"
  26. echo -e
  27. echo -e "\e[1;33m===== FTP_RECEPTOR/SOURCE SCRIPTING INSTALL =====\e[0m"
  28. echo -e "\e[1;36m9. RECEPTOR Deploy scriptGet getVPSFile restoremacro onOffLimiter\e[0m"
  29. echo -e "\e[1;33m*install yafc n do manual exec to establish scriptting!*\e[0m"
  30. echo -e "\e[1;33m**Also deploy passwd.sh for script cycle passwd restart :P\e[0m"
  31. echo -e "\e[1;36m11. SOURCE Deploy scriptCreate createmacro onOffLimiter\e[0m"
  32. echo -e "\e[1;36m12. SOURCE Inject Wpanel code to block bad usernames*****\e[0m"
  33. echo -e "\e[1;33m**BITBIN->FTP_SYNC_Netplan_n_InfosMISC to stablish VSFTPD server\e[0m"
  34. echo -e
  35. echo -e "\e[1;33m13. Adjust /bin/limiter time 'sleep 5s'\e[0m"
  36. echo -e "\e[1;33m*Dont forget to check CHMOD777 all this shit*\e[0m"
  37. echo -e "\e[1;36m0. Sair\e[0m"
  38. echo -e "\e[1;33m================\e[0m"
  39. echo -n "Escolha uma opção: "
  40. }
  41. # Loop principal do menu
  42. while true; do
  43. exibir_menu
  44. read opcao
  45. case $opcao in
  46. 1)
  47. # Nome do arquivo de entrada
  48. arquivo="./v2Back_n_IPTV"
  49. # Loop através das linhas do arquivo de entrada
  50. while IFS= read -r linha; do
  51. # Use um comando regex para encontrar os valores entre colchetes
  52. valores_entre_colchetes=$(echo "$linha" | grep -o '\[[^]]*\]')
  53. # Loop através dos valores encontrados
  54. while IFS= read -r valor; do
  55. # Remova colchetes e verifique se o valor é menor que ou igual a 0
  56. valor_sem_colchetes=$(echo "$valor" | tr -d '[]')
  57. if [ "$valor_sem_colchetes" -le 0 ]; then
  58. # Se for menor ou igual a 0, exiba essa linha
  59. echo "$linha"
  60. break
  61. fi
  62. done <<< "$valores_entre_colchetes"
  63. done < "$arquivo"
  64. read
  65. ;;
  66. 2)
  67. # Nome do arquivo de entrada
  68. arquivo="./v2Back_n_IPTV"
  69. # Crie um arquivo temporário para armazenar as linhas válidas
  70. tempfile=$(mktemp)
  71. # Loop através das linhas do arquivo de entrada
  72. while IFS= read -r linha; do
  73. # Use um comando regex para encontrar os valores entre colchetes
  74. valores_entre_colchetes=$(echo "$linha" | grep -o '\[[^]]*\]')
  75. # Loop através dos valores encontrados
  76. while IFS= read -r valor; do
  77. # Remova colchetes e verifique se o valor é menor que 0
  78. valor_sem_colchetes=$(echo "$valor" | tr -d '[]')
  79. if [ "$valor_sem_colchetes" -le 0 ]; then
  80. # Se for menor que 0, não copie essa linha para o arquivo temporário
  81. continue 2
  82. fi
  83. done <<< "$valores_entre_colchetes"
  84. # Se chegou aqui, a linha é válida, copie-a para o arquivo temporário
  85. echo "$linha" >> "$tempfile"
  86. done < "$arquivo"
  87. # Substitua o arquivo original pelo arquivo temporário
  88. mv "$tempfile" "$arquivo"
  89. # Exibindo o arquivo modificado
  90. cat "$arquivo"
  91. read
  92. ;;
  93. 3)
  94. # Nome do arquivo de entrada
  95. arquivo_origem="./v2Back_n_IPTV"
  96. # Nome do arquivo temporário
  97. arquivo_temporario="temp.txt"
  98. # Remove linhas em branco do arquivo de origem
  99. grep -v '^$' "$arquivo_origem" > "$arquivo_temporario"
  100. # Substituir o arquivo de origem pelo arquivo temporário
  101. mv "$arquivo_temporario" "$arquivo_origem"
  102. # Mensagem de conclusão
  103. echo "Linhas em branco removidas com sucesso do arquivo $arquivo_origem."
  104. ;;
  105. 4)
  106. # Nome do arquivo de entrada
  107. arquivo_origem="./v2Back_n_IPTV"
  108. # Nome do arquivo temporário
  109. arquivo_temporario="temp.txt"
  110. # Loop para processar cada linha do arquivo de origem
  111. while IFS= read -r linha; do
  112. valor_coluna1=$(echo "$linha" | awk '{print $1}')
  113. valor_colchetes=$(echo "$linha" | awk -F'[][]' '{print $2}')
  114. novo_valor_colchetes=$((valor_colchetes - 1))
  115. linha_modificada=$(echo "$linha" | sed "s/\[$valor_colchetes\]/\[$novo_valor_colchetes\]/")
  116. echo "$linha_modificada"
  117. done < "$arquivo_origem" > "$arquivo_temporario"
  118. # Substituir o arquivo de origem pelo arquivo temporário
  119. mv "$arquivo_temporario" "$arquivo_origem"
  120. ;;
  121. 5)
  122. cat ./v2Back_n_IPTV
  123. read
  124. ;;
  125. 6)
  126. echo -e "\e[1;33mAdd linha à seguir, que programa o bang pra 1:15AM todo dia\e[0m"
  127. echo -e "\e[1;36m15 1 * * * /bin/cat v2Back_n_IPTV | ./pipeSubtrator.sh \e[0m"
  128. echo -e "\e[1;36m16 1 * * * ./removeBlank.sh\e[0m"
  129. echo -e "\nPressione qualquer tecla para executar CRONTAB -E..."
  130. echo -e " # Nome do arquivo de entrada
  131. arquivo_origem=\"./v2Back_n_IPTV\"
  132. # Nome do arquivo temporário
  133. arquivo_temporario=\"temp.txt\"
  134. # Remove linhas em branco do arquivo de origem
  135. grep -v '^$' \"\$arquivo_origem\" > \"\$arquivo_temporario\"
  136. # Substituir o arquivo de origem pelo arquivo temporário
  137. mv \"\$arquivo_temporario\" \"\$arquivo_origem\"
  138. # Mensagem de conclusão
  139. echo \"Linhas em branco removidas com sucesso do arquivo \$arquivo_origem.\"
  140. " > ./removeBlank.sh
  141. chmod 777 ./removeBlank.sh
  142. read
  143. crontab -e
  144. ;;
  145. g)
  146. echo -e "#!/bin/bash
  147. # Função para extrair e imprimir as strings do bloco1.txt
  148. extract_strings_from_bloco1() {
  149. while IFS=\"|\" read -r uuid _; do
  150. # Remove espaços em branco no início e no fim da string
  151. uuid=\$(echo \"\$uuid\" | tr -d ' ')
  152. # Verifica se a string corresponde ao formato esperado
  153. 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
  154. echo \"\$uuid\"
  155. fi
  156. done < bloco1.txt
  157. }
  158. # Função para extrair e imprimir as strings do bloco2.txt
  159. extract_strings_from_bloco2() {
  160. # Use grep com uma expressão regular para extrair as UUIDs
  161. 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
  162. }
  163. # Chamando as funções para extrair e imprimir as strings
  164. echo \"Strings do v2Back_n_IPTV:\"
  165. extract_strings_from_bloco1
  166. echo \"Strings do config.json:\"
  167. extract_strings_from_bloco2" > ./sUUID.sh
  168. chmod 777 ./sUUID.sh
  169. ;;
  170. 7)
  171. cat /root/v2Back_n_IPTV > bloco1.txt
  172. cat /etc/v2ray/config.json > bloco2.txt
  173. ./sUUID.sh
  174. read
  175. echo -e "\e[1;33m===== Linhas que aparecem apenas 1 vez =====\e[0m"
  176. ./sUUID.sh | sort | uniq -c | awk '$1 == 1 {print $2}'
  177. read
  178. ;;
  179. 8)
  180. ./script2.sh # Substitua script2.sh pelo nome do seu segundo script
  181. ;;
  182. 9)
  183. echo " #!/bin/bash
  184. while :
  185. do
  186. ./getVPSFile.sh | yafc ftpuser:'~L8z65xL=8y]!rs'@192.99.252.3
  187. chmod 777 ./backup.vps
  188. ./restoremacro.sh | menu
  189. ./onOffLimiter.sh | menu
  190. ./passwd.sh | passwd
  191. sync; echo 1 > /proc/sys/vm/drop_caches
  192. sleep 8
  193. sync; echo 2 > /proc/sys/vm/drop_caches
  194. done
  195. " > ./scriptGet.sh
  196. echo -e " #!/bin/bash
  197. sleep 1
  198. echo \"ls\"
  199. sleep 1
  200. echo \"get backup.vps\"
  201. sleep 1
  202. echo \"y\"
  203. sleep 1
  204. echo \"exit\"
  205. " > ./getVPSFile.sh
  206. echo -e " #!/bin/bash
  207. echo \"15\"
  208. echo \"2\"
  209. sleep 4
  210. echo -ne \"\n\"
  211. echo \"0\"
  212. echo \"0\"
  213. echo \"0\"
  214. " > ./restoremacro.sh
  215. echo -e " #!/bin/bash
  216. echo \"17\"
  217. sleep 8
  218. echo \"17\"
  219. sleep 3
  220. echo \"0\"
  221. echo \"0\"
  222. echo \"0\"
  223. " > ./onOffLimiter.sh
  224. echo "#!/bin/bash
  225. echo 'lbadwath'
  226. sleep 1
  227. echo 'lbadwath'
  228. sleep 1
  229. " > ./passwd.sh
  230. chmod 777 *.sh
  231. ;;
  232. 11)
  233. echo "#!/bin/bash
  234. while :
  235. do
  236. ./createmacro.sh | menu
  237. cp -rf ./backup.vps /home/ftpuser/ftp/files/
  238. chown ftpuser:ftpuser /home/ftpuser/ftp/files/backup.vps
  239. chmod 777 /home/ftpuser/ftp/files/backup.vps
  240. #./limiterOvpn.sh
  241. ./onOffLimiter.sh | menu
  242. sync; echo 1 > /proc/sys/vm/drop_caches
  243. sleep 3
  244. sync; echo 2 > /proc/sys/vm/drop_caches
  245. done
  246. " > ./scriptCreate.sh
  247. echo -e "#!/bin/bash
  248. echo \"17\"
  249. sleep 8
  250. echo \"17\"
  251. sleep 3
  252. echo \"0\"
  253. echo \"0\"
  254. echo \"0\"
  255. " > ./onOffLimiter.sh
  256. echo -e "#!/bin/bash
  257. # Nome do arquivo onde o valor será armazenado
  258. arquivo='contador.txt'
  259. # Se o arquivo não existir, cria e inicializa com 0
  260. if [ ! -f \"\$arquivo\" ]; then
  261. echo 0 > \"\$arquivo\"
  262. fi
  263. # Lê o valor atual do arquivo
  264. valor=\$(<\"\$arquivo\")
  265. # Incrementa o valor
  266. echo \$(( \$(cat contador.txt) + 1 )) > contador.txt
  267. echo \"15\"
  268. sleep 1
  269. echo \"1\"
  270. sleep 3
  271. echo \"n\"
  272. # Verifica se o valor atingiu 30
  273. if [ \"\$valor\" -gt 30 ]; then
  274. echo \"Valor 30 atingido\"
  275. # Reseta o valor para 0
  276. echo \"0\" > contador.txt
  277. echo \"8\"
  278. sleep 6
  279. fi
  280. echo \"n\"
  281. echo \"0\"
  282. echo \"0\"
  283. echo \"0\"
  284. " > ./createmacro.sh
  285. ;;
  286. 12)
  287. echo -e "BITBIN -> BLOCK_User_bad_string_n_MySQL_Trhigger_String_n_SSHLimiter"
  288. read
  289. ;;
  290. 13)
  291. vim /bin/limiter
  292. ;;
  293. 0)
  294. echo "Saindo..."
  295. exit 0
  296. ;;
  297. a)
  298. cat ./v2snap
  299. read
  300. ;;
  301. b)
  302. # Defina o caminho para o arquivo /etc/passwd
  303. passwd_file="/etc/passwd"
  304. # Inicialize uma variável para contar os usuários
  305. count=0
  306. echo "" > ./v2snap2
  307. # Use um loop while para ler cada linha do arquivo /etc/passwd
  308. while IFS= read -r line; do
  309. username=$(echo "$line" | cut -d: -f1)
  310. if [[ "$username" == *_v2* || "$username" == *_V2* ]]; then
  311. echo "$username"
  312. echo "$username" >> ./v2snap2
  313. chage -l "$username" | grep "Account expires" | cut -d: -f2- | sed 's/^[[:space:]]*//'
  314. ((count++))
  315. fi
  316. done < "$passwd_file"
  317. # Imprima o número total de usuários encontrados
  318. echo "Número total de usuários que terminam em '_v2' ou '_V2': $count"
  319. read
  320. ;;
  321. c)
  322. # Defina o caminho para o arquivo /etc/passwd
  323. passwd_file="/etc/passwd"
  324. # Inicialize uma variável para contar os usuários
  325. count=0
  326. echo "" > ./v2snap
  327. # Use um loop while para ler cada linha do arquivo /etc/passwd
  328. while IFS= read -r line; do
  329. username=$(echo "$line" | cut -d: -f1)
  330. if [[ "$username" == *_v2* || "$username" == *_V2* ]]; then
  331. echo "$username"
  332. echo "$username" >> ./v2snap
  333. chage -l "$username" | grep "Account expires" | cut -d: -f2- | sed 's/^[[:space:]]*//'
  334. ((count++))
  335. fi
  336. done < "$passwd_file"
  337. # Imprima o número total de usuários encontrados
  338. echo "Número total de usuários que terminam em '_v2' ou '_V2': $count"
  339. read
  340. ;;
  341. d)
  342. file1="./v2snap"
  343. file2="./v2snap2"
  344. # Verifica se os arquivos existem
  345. if [ ! -e "$file1" ] || [ ! -e "$file2" ]; then
  346. echo "Um ou ambos os arquivos não existem."
  347. exit 1
  348. fi
  349. # Lê os usuários do arquivo v2snap e armazena em uma matriz
  350. mapfile -t users_file1 < "$file1"
  351. # Lê os usuários do arquivo v2snap2 e armazena em outra matriz
  352. mapfile -t users_file2 < "$file2"
  353. # Percorre a matriz de usuários do v2snap
  354. for user1 in "${users_file1[@]}"; do
  355. # Verifica se o usuário não está presente no v2snap2
  356. if ! [[ " ${users_file2[*]} " =~ " $user1 " ]]; then
  357. echo "Usuário exclusivo em $file1: $user1"
  358. fi
  359. done
  360. read
  361. ;;
  362. *)
  363. echo "Opção inválida! Pressione Enter para continuar..."
  364. read
  365. ;;
  366. esac
  367. done

comments powered by Disqus