CanalQb - Ubuntu - Automatizando os Bots de telegram
CanalQb - Ubuntu - Automatizando os Bots de telegram
Aplicativos indicados:
- Putty: https://cb.run/u0St
- Winscp: https://cb.run/oiZ7
- Notepad++: https://cb.run/l81Z
sudo nano /etc/samba/smb.conf
Agora, vá no chat do telegram, ou na pagina https://bit.ly/3NOduhT escolha um bot, e faça o download.
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
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.
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'
pip install telethon
Ou delete as linhas acima e adicione as linhas abaixo, colocando cada valor da variavel entre aspa simples, ou aspas duplas, você escolhe.
python USDC_GEMS_BOT.py
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.
O segundo arquivo é o service, esse arquivo você irá precisar editar. por que precisa definir o caminho, onde você salvou seus arquivos py.
- Então é importante vocês informarem o endereço de pasta corretamente.
sudo visudo
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
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
Nenhum comentário
Comente só assim vamos crescer juntos!
Observação: somente um membro deste blog pode postar um comentário.