Ultimas do CanalQb

CanalQb - Ubuntu - Automatizando os Bots de telegram

@CanalQb

CanalQb - Ubuntu - Automatizando os Bots de telegram



Lista de bots automatizados: https://bit.ly/3NOduhT
Primeira parte: Instalando Ubuntu e Python: https://bit.ly/42wk3Km

Segunda parte: Montando uma partição: https://bit.ly/3Mgevhp

Terceira parte: Compartilhando pasta: https://bit.ly/44X1scg

Quarta parte: Configurando Bot telegram, e serviços: https://bit.ly/3O3ZdxG

Aplicativos indicados:

  • Putty: https://cb.run/u0St
  • Winscp:  https://cb.run/oiZ7
  • Notepad++: https://cb.run/l81Z
Para quem está acompanhando a saga, aqui está a finalização do trabalho.
Fique a vontade de me enviar novos bots, para que eu crie novos scripts, logico dou preferencia para os bots pagantes, então tente sacar o mínimo possível, para não perdemos tempo!

No Post, https://bit.ly/3NOduhT, eu sempre vou atualizar a lista quando postar um novo script de automação, então fiquem de olho!
O post está vinculado diretamente com o canal do telegram @canalqb e além disso deixo um grupo livre para vocês postarem seus links de referencia, então compartilhem https://t.me/airdrops_qb!

Agora vamos ao que interessa.

Se você segui os 3 últimos vídeos, então você já criou um servidor, e possui uma pasta criada e compartilhada em rede via samba, correto.
Meus arquivos Python vão estar dentro do caminho: /mnt/hd/arquivos/python/
O de vocês vão estar no caminho que você definiu, ok

Primeiro vamos editar a configuração da pasta de rede que você criou com samba, para que o python consiga autorização.

Abra o arquivo smb.conf usando o comando:
sudo nano /etc/samba/smb.conf

Em vermelho, entenda que é a pasta que você criou para compartilhar.
Em azul, eu compartilhei minha pasta de serviços, para ficar mais rápido, mas isso é opcional.

A apresentação das pastas ficam mais ou menos assim:

Agora, vá no chat do telegram, ou na pagina https://bit.ly/3NOduhT escolha um bot, e faça o download. 
Vai existir 2 arquivos cada uma.

Os arquivos possuem o mesmo nome do Bot para facilitar o acesso.
O arquivo com extensão py, recomendo você guardar todos na mesma pasta para facilitar suas buscas.
no meu caso fica em /mnt/hd/arquivos/python/telegram/bots e/ou acesso via rede no caminho \\192.168.0.2\canalqb_yt\python\telegram\bots
logicamente no dia a dia, vou acessar via rede, pela praticidade!

Então mova seus arquivos de extensão py agora para sua pasta final.
O que precisamos fazer agora, é preparar os modulos necessarios para rodar as aplicações telegram.
Meus arquivos estão para executar no caminho ../telegram/bots
Na pasta ..telegram/, eu mantenho alguns arquivos de comunicação com todos os bots na pasta ../bots.


Os arquivos api_hash.txt, api_id.txt e phone_number.txt, são arquivos que eu utilizo para manter as configurações que todos meus scripts vão chamar para acionar o modulo do telegram.
Para ter acesso a essas informações acesse https://my.telegram.org/auth?to=apps 
insira seu telefone do telegram usando +DDIDDTELEFONE

A próxima tela, vai solicitar um código de acesso:


E vai estar dentro deste contato no telegram:

Inserindo o código ele vai te dar uma tela similar a esta
Preencha as informações, mas tenha em mente que a Platform deve ser Desktop
Após concluir esse processo, você vai receber esta tela:

Observe que nesta tela está seu API_id e seu API_hash, alimente diretamente no script, ou use da forma que eu uso, eu recomendo assim, quanto ao phone_number.txt use seu numero de telefone no formato +DDIDDTELEFONE '+5511977058071'

Este processo está concluído, agora vamos preparar o python com os módulos de apoio para rodar o script.py
Todos os Script de Bot vão precisar do modulo telethon, que é um interpretador de telegram para aplicações, e neste caso vamos instalar no python.
No Putty, execute o comando
pip install telethon

Assim que concluído, seu script está pronto para rodar.
Lembre-se que você precisa possuir os 3 arquivos (api_hash.txt, api_id.txt e phone_number.txt), na pasta anterior onde seus bots serão salvos, já visto anteriormente, ou edite essas linhas abaixo:


Ou delete as linhas acima e adicione as linhas abaixo, colocando cada valor da variavel entre aspa simples, ou aspas duplas, você escolhe.

Resolvido essas etapas, seu script está rodando, então vamos testar.

Entre na pasta onde está o bot, via putty, e execute escreva python nomedobot.py
exemplo de um bot qualquer:
python USDC_GEMS_BOT.py
Note que ele vai pedir um código, esse código é do telegram

Abra seu telegram e vá no contato Telegram, e pegue o código fornecido e insira no bot


Quando você inserir o código, dependendo do bot, ele vai escrever um texto de uma linha ou simplesmente sair, isso depende do dia que eu criei o bot, no print abaixo, ele simplesmente sai do script.

Mas se você olhar o bot no telegram, vai ver:

O Script conseguiu solicitar o pedido do botão selecionado em azul, com o texto 🎁 Bonus.
Em vermelho eu fiz um circulo, para apontar, que esse bot, só para o 🎁 Bonus, a cada 24 horas ou seja,  86400 segundos, e para não sobrecarregar a memoria do seu computador, você pode pedir para que o script python seja executado, a cada 24 horas + 1 segundo 864001 para que nunca bata no mesmo horário.

Então, tudo concluído e explicado, vamos criar o serviço no Ubuntu:

O segundo arquivo é o service, esse arquivo você irá precisar editar. por que precisa definir o caminho, onde você salvou seus arquivos py.


Linha 7: Python é acionado e executa o arquivo que está na pasta que determinamos.
Linha 9: Toda execução secundaria, de localização de dados, será executado na mesma pasta.
  • Então é importante vocês informarem o endereço de pasta corretamente.
Linha 10: Serve para informar que o serviço sempre deverá ser reiniciado, quando finalizar.
Linha 11: Informa quanto o serviço precisa aguardar para reiniciar, (Este valor está em segundos, e é 1 segundo maior que do tempo do bônus de bot).

Linha 8: é o usuário que vai chamar a rotina, e para que isso não apresente erro, precisamos criar um comando novo.

No Putty vamos digitar:
sudo visudo
Entrar nesse arquivo e procurar a linha que fala root ALL=(ALL:ALL) ALL, e logo abaixo desse texto, iremos dar permissão para nosso usuário:


Salve usando CTRL+O e saia usando CTRL+A

Agora reinicie o seu servidor
sudo reboot

Neste momento, tudo está configurado de acordo com o que você precisa, para executar os serviços.

Agora que você conseguiu concluir todo o procedimento, chegou a hora de informar o Linux que cada serviço que você incluir, você precisa que seja ativado.

Então, vamos mostrar como ativar o bot que usamos de exemplo nos prints da parte do python, para ativar o serviço:

  • sudo systemctl daemon-reload: de forma simples, ele lista todos os arquivos da pasta systemd, para que seja possivel trabalhar com elas, então sempre que inserir um arquivo .service novo, rode essa rotina.
  • sudo systemctl start: Serve para iniciar o serviço, mas ao reinicar o servidor, ele vai executar
  • sudo systemctl enable: Serve para ativar o serviço, e mesmo que reiniciar, ele se mantem ativo.
  • sudo systemctl status: Serve para validar se o serviçoestá rodando, mesmo que com erro
  • sudo systemctl restart: Reinicia o serviço
Então com essas informações, vamos aplicar no script, que copiamos para a pasta /etc/systemd/system

sudo systemctl daemon-reload 

sudo systemctl start USDC_GEMS_BOT.service

sudo systemctl enable USDC_GEMS_BOT.service

sudo systemctl status USDC_GEMS_BOT.service

Feito isso, o serviço está ativado e rodando normalmente, agora é só fazer isso com os próximos services, lembre de corrigir os endereços  de caminho de ExecStart, e WorkingDirectory e informar qual usuario vai rodar a aplicação User, tente não usar o User=root, pois alguns módulos de python não aceitam root sem Venv.

Outras dicas:

Adicione seu usuário ao grupo root

sudo usermod -aG sudo qb

Verificar se o usuario qb possui permissão

sudo chown qb:qb caminho/para/o/arquivo_de_sessao

Conceder permissão:

 sudo chmod u+rwx caminho/do/diretorio 

Se você deseja conceder permissões de criação de pastas e arquivos ao usuário "qb" no Ubuntu, você pode fazer isso modificando as permissões do diretório em que deseja que o usuário tenha essa capacidade.

Aqui está como você pode conceder permissões de criação de pastas e arquivos ao usuário "qb":

Abra um terminal no Ubuntu.

Navegue até o diretório em que deseja conceder as permissões de criação para o usuário "qb". Por exemplo, se você deseja conceder permissões para a pasta "/caminho/do/diretorio", use o seguinte comando:

cd /caminho/do/diretorio

Em seguida, execute o comando a seguir para conceder permissões de gravação e execução para o usuário "qb":

sudo chmod u+rwx .

Isso concede permissões de leitura, gravação e execução ao usuário "qb" no diretório atual (representado por "."). Agora, o usuário "qb" poderá criar pastas e arquivos nesse diretório.

Ver logs do serviço:

sudo journalctl -u nome_do_servico ou sudo journalctl -u nome_do_servico -n 50

O final -n 50 pede pra mostar as ultimas 50 linhas do log do serviço

Limpar registros de logs

sudo journalctl --vacuum-time=0

Especificar tamanho maximo do arquivo de registros de log

sudo journalctl --vacuum-size=100M

Limpar 100% do registro LOG

sudo journalctl --rotate

sudo journalctl --vacuum-time=1s

sudo journalctl --flush

Verificar se algum serviço está com erro  

systemctl --failed

Não testei os comandos abaixo:

Use o seguinte comando para listar todos os serviços .service disponíveis:

systemctl list-unit-files --type=service

Na saída do comando, procure pelos serviços com o status "disabled". Esses são os serviços que não estão ativados.

Para ativar um serviço específico, utilize o comando:

sudo systemctl enable nome_do_serviço

Substitua "nome_do_serviço" pelo nome real do serviço que deseja ativar. Por exemplo, se o serviço for "apache2.service", o comando será:

sudo systemctl enable apache2.service

Repita o passo anterior para cada serviço que deseja ativar.

Para iniciar um serviço que foi ativado, use o seguinte comando:

sudo systemctl start nome_do_serviço

Novamente, substitua "nome_do_serviço" pelo nome real do serviço que deseja iniciar.

Repita o passo anterior para cada serviço ativado que deseja iniciar.

Isso deve permitir que você ative e inicie todos os serviços com extensão .service que não estão ativados no seu sistema Ubuntu 18.04.

---------------------*------------------------------------

É possível ativar e iniciar todos os serviços .service que não estão ativados de forma automática usando um único comando no Ubuntu 18.04. Você pode executar o seguinte comando:

sudo systemctl enable --now $(systemctl list-unit-files --type=service | grep 'disabled' | awk '{print $1}')

Esse comando combina várias etapas em uma única linha. Ele lista todos os serviços .service disponíveis, filtra apenas os serviços que estão com o status "disabled" e, em seguida, ativa e inicia cada um deles usando o comando "systemctl enable --now".

Tenha em mente que, ao executar esse comando, você ativará e iniciará todos os serviços que estão desativados. Certifique-se de revisar a lista de serviços resultante para garantir que deseja ativar e iniciar todos eles simultaneamente.

---------------------*------------------------------------

Se você deseja ativar e iniciar apenas os serviços .service criados por você, pode seguir este procedimento:

Digite o seguinte comando para listar todos os serviços .service que foram criados por você:

systemctl list-unit-files --type=service --user

Analise a lista resultante e anote os nomes dos serviços que deseja ativar e iniciar.

Agora, você pode usar o seguinte comando para ativar e iniciar cada serviço individualmente:

systemctl --user enable nome_do_serviço && systemctl --user start nome_do_serviço

Substitua "nome_do_serviço" pelo nome real do serviço que você deseja ativar e iniciar. Por exemplo, se o serviço for "meu_servico.service", o comando será:

systemctl --user enable meu_servico.service && systemctl --user start meu_servico.service

Repita o passo anterior para cada serviço que deseja ativar e iniciar.

Esses comandos serão executados como usuário, ativando e iniciando apenas os serviços .service criados por você.


Dica pessoal, para ficar mais fácil a separação dos arquivos services, eu crio uma pasta chamada python e dentro uma chamada bots /etc/systemd/system/python/bots, para meu serviço da aliexpress eu crio /etc/systemd/system/python/aliexpress, isso faz com que meu backup de serviços se torne mais rapido e pratico.

E para executar os serviços contidos nesta pasta fazemos:

use normalmente o comando para acionar os serviços

sudo systemctl daemon-reload

Agora você usa 

sudo systemctl enable /etc/systemd/system/python/bots/meuservice.service

ou 

sudo systemctl enable /etc/systemd/system/python/bots/*.service

E então, pode dar start normalmente

sudo systemctl start meuservice.service

ou

sudo systemctl start *.service 

-----


sudo adduser qb

sudo usermod -aG sudo qb


CanalQb
  



Nenhum comentário

Comente só assim vamos crescer juntos!

Observação: somente um membro deste blog pode postar um comentário.