Script notificação Telegram

547 views
Skip to first unread message

Samuel Gonçalves

unread,
Jul 5, 2018, 7:59:26 PM7/5/18
to Bacula Backup-Pt-Br
Boa noite,

Após atualizar para a ultima versão o script esta apresentando o erro abaixo:


root@BACULA:/etc/bacula/scripts# ./_send_telegram.sh 643
(standard_in) 1: syntax error
(standard_in) 1: syntax error


Alguém com o mesmo problema ?





Wanderlei Huttel

unread,
Jul 9, 2018, 1:16:44 PM7/9/18
to bacula-ba...@googlegroups.com
Olá Samuel

Dê onde você pegou o script?

Atenciosamente 

Wanderlei Hüttel


--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-p...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para bacula-ba...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/bacula-backup-pt-br.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/bacula-backup-pt-br/f4561fa5-0012-4c91-9087-3b466ff9cebd%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Samuel Gonçalves

unread,
Jul 9, 2018, 8:20:42 PM7/9/18
to bacula-ba...@googlegroups.com

Samuel Gonçalves

unread,
Jul 13, 2018, 5:38:37 PM7/13/18
to Bacula Backup-Pt-Br
Acabei de pegar ele desse site e o problema continua

Wanderlei Huttel

unread,
Jul 13, 2018, 6:00:41 PM7/13/18
to bacula-ba...@googlegroups.com
Olá Samuel

Esses script do Git funciona certinho. Veja se você não pulou nenhum passo e qualquer coisa tem que debugar o script pra ver o que pode ser.

Enviado de Motorola Moto X2

Wanderlei Hüttel

--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-p...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para bacula-ba...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/bacula-backup-pt-br.

Samuel Gonçalves

unread,
Jul 13, 2018, 6:08:08 PM7/13/18
to bacula-ba...@googlegroups.com
Parou depois que instalei a última versão do bacula, na anterior funciona. 

Wanderlei Huttel

unread,
Jul 13, 2018, 6:33:58 PM7/13/18
to bacula-ba...@googlegroups.com
Estou rodando com a última versão e funciona blz. Faz um debug no script linha a linha.

Enviado de Motorola Moto Z2 Play

Wanderlei Hüttel

Wanderlei Huttel

unread,
Jul 19, 2018, 1:03:45 PM7/19/18
to bacula-ba...@googlegroups.com
Olá Samuel

Andei efetuando uns testes e pode ser pela falta do utilitário "bc". 
Atualizei o tutorial e acrescentei ele como dependência.

### Debian ###
apt-get install curl bc

### CentOS ###
yum -y install curl bc


Atenciosamente 

Wanderlei Hüttel

Carlos Henrique Ferreira

unread,
Sep 27, 2018, 2:58:36 PM9/27/18
to Bacula Backup-Pt-Br
Boa tarde pessoal,

                  Também estou com o mesmo problema, "syntax error" ao executar o script na mão, ele dá esse erro mas funciona, chega a notificação no Telegram com os campos em branco "Job Client etc" porém qnd eu rodo um job não chega notificação nenhuma, já configurei no JobDefs certinho mas não funciona, alguém pode me ajudar? abraços!!!

Ah! dúvida, precisa editar e colocar o caminho dos binários do bconsole e curl? vide abaixo trecho do script:

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# Config
bconsole=`which bconsole`
curl=`which curl`


 
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-pt-br+unsub...@googlegroups.com.

--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-pt-br+unsub...@googlegroups.com.

--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-pt-br+unsub...@googlegroups.com.

Wanderlei Huttel

unread,
Sep 27, 2018, 3:10:21 PM9/27/18
to bacula-ba...@googlegroups.com
Olá Carlos

Pode ser que você tenha instalado 2 bconsoles, de uma versão antiga por exemplo.
Verifique se você instalou as dependências também.


### Debian ###
apt-get install curl bc

### CentOS ###
yum -y install curl bc

Atenciosamente 

Wanderlei Hüttel

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-p...@googlegroups.com.

--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-p...@googlegroups.com.

--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-p...@googlegroups.com.

--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-p...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para bacula-ba...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/bacula-backup-pt-br.

Carlos Henrique

unread,
Sep 27, 2018, 3:45:32 PM9/27/18
to bacula-ba...@googlegroups.com
Boa tarde Wanderlei,

               Aqui acredito ter um bconsole só pois essa máquina eu fiz do zero e instalei por compilação, o bacula funciona certinho, executando os jobs da agenda de boa, só essa integração que não funciona, olhando o log do telegram, ao que me parece ele não consegue enviar a msg, vide:

20/09/2018 15:18:00 - Message: JobName=Backup_sv-bacula | Jobid=1879 | Client=sv-bacula-fd | JobBytes=241.50 MB | Level=Incremental | Status=Completed successfully
20/09/2018 15:20:07 - Attempt 17 failed!
20/09/2018 15:20:07 - Waiting 30 seconds before retry ...
20/09/2018 15:20:37 - Start message send (attempt 18) ...
20/09/2018 15:20:37 - Message: JobName=Backup_sv-bacula | Jobid=1879 | Client=sv-bacula-fd | JobBytes=241.50 MB | Level=Incremental | Status=Completed successfully
20/09/2018 15:22:45 - Attempt 18 failed!
20/09/2018 15:22:45 - Waiting 30 seconds before retry ...
20/09/2018 15:23:15 - Start message send (attempt 19) ...
20/09/2018 15:23:15 - Message: JobName=Backup_sv-bacula | Jobid=1879 | Client=sv-bacula-fd | JobBytes=241.50 MB | Level=Incremental | Status=Completed successfully
20/09/2018 15:25:22 - Attempt 19 failed!
20/09/2018 15:25:22 - Waiting 30 seconds before retry ...
20/09/2018 15:25:52 - Start message send (attempt 20) ...
20/09/2018 15:25:52 - Message: JobName=Backup_sv-bacula | Jobid=1879 | Client=sv-bacula-fd | JobBytes=241.50 MB | Level=Incremental | Status=Completed successfully
2

Wanderlei Huttel

unread,
Sep 27, 2018, 3:59:57 PM9/27/18
to bacula-ba...@googlegroups.com
Olá Carlos.

Se você usa firewall, precisa liberar o endereço do telegram.
Tem cara que não tem acesso ou então tem alguma variável errada.


Atenciosamente 

Wanderlei Hüttel

Carlos Henrique

unread,
Sep 27, 2018, 4:03:56 PM9/27/18
to bacula-ba...@googlegroups.com
Eu desconfiei que era algo do tipo, aqui eu tenho um servidor proxy, eu setei o endereço do proxy no /etc/profile utilizando a variável export, rodando o script na mão funciona, mas no job não, sabe dizer se preciso setar o proxy em algum lugar de modo que ele consiga sair pelo proxy ao executar o script no job?

Wanderlei Huttel

unread,
Sep 27, 2018, 4:16:20 PM9/27/18
to bacula-ba...@googlegroups.com
Você pode tentar colocar no próprio script.
https://www.cyberciti.biz/faq/linux-unix-set-proxy-environment-variable/

Ou então libera no firewall



Atenciosamente 

Wanderlei Hüttel

Carlos Henrique

unread,
Sep 28, 2018, 9:36:11 AM9/28/18
to bacula-ba...@googlegroups.com

Bom dia Wanderlei,

 

                Consegui funcionar em parte rs, notei que só os Jobs que tem mencionado no Jobdefs executaram o script (no caso só fez bkp do bacula e do catálogo), minha pergunta é, preciso declarar a chamado do script em todos meus Jobs? Segue abaixo meu Default Job e Jobdefs:

 

JobDefs {

  Name = "DefaultJob"

  Type = Backup

  Level = Incremental

  Client = sv-bacula-fd

  FileSet = "sv-bacula_fileset"

  Schedule = "Agenda_GFS"

  Storage = FileStorage

  Messages = Standard

  Pool = Diaria

RunScript {

     Command = "/etc/bacula/scripts/_send_telegram.sh %i"

     RunsWhen = After

     RunsOnFailure = yes

     RunsOnClient = no

     RunsOnSuccess = yes # default, you can drop this line

  }  SpoolAttributes = yes

  Priority = 10

  Write Bootstrap = "/var/lib/bacula/%c.bsr"

 

}

 

 

#

# Define the main nightly save backup job

#   By default, this job will back up to disk in /Backup

Job {

  Name = "Backup_sv-bacula"

  JobDefs = "DefaultJob"

}

 

#Job {

#  Name = "BackupClient2"

#  Client = sv-bacula2-fd

#  JobDefs = "DefaultJob"

#}

 

#Job {

#  Name = "BackupClient1-to-Tape"

#  JobDefs = "DefaultJob"

#  Storage = LTO-4

#  Spool Data = yes    # Avoid shoe-shine

#  Pool = Default

#}

 

#}

 

# Backup the catalog database (after the nightly save)

Job {

  Name = "Backup_catalogo_sv-bacula"

  JobDefs = "DefaultJob"

  Level = Full

  FileSet="sv-bacula_catalogo"

  Schedule = "Agenda_GFS"

Wanderlei Huttel

unread,
Sep 28, 2018, 9:59:15 AM9/28/18
to bacula-ba...@googlegroups.com
Se os demais Jobs não tiverem a a declaração do JobDefs, não vai funcionar mesmo, pois o JobDefs é utilizado como um template para o Jobs.
Se não existir precisa declarar em cada Jobm ou então coloca o JobDefs.


Atenciosamente 

Wanderlei Hüttel

Carlos Henrique

unread,
Sep 28, 2018, 10:21:42 AM9/28/18
to bacula-ba...@googlegroups.com

Mas se eu colocar o Jobdefs em todos os meus jobs ele não vai puxar o fileset do jobdefs?

Wanderlei Huttel

unread,
Sep 28, 2018, 12:16:37 PM9/28/18
to bacula-ba...@googlegroups.com
Só se você não tiver definido o Fileset no Job.
Basicamente o que muda de um job para o outro é o Fileset e Client, então tendo jobdefs e Fileset e Client no Job, ele busca do Job e não do Fileset.


Enviado de Motorola Moto Z2 Play

Wanderlei Hüttel

Carlos Henrique

unread,
Sep 28, 2018, 2:09:31 PM9/28/18
to bacula-ba...@googlegroups.com

Hum deixa ver se eu entendi, então eu posso declarar o Jobdefs em todos Jobs que ele não vai seguir o fileset do Jobdefs? Se eu fizer em todos os meus Jobs como abaixo vai dar certo?

 

Job {

  Name = Backup_ns1

  Type = Backup

  JobDefs = "DefaultJob"

  Level = Incremental

  Client = ns1-fd

  FileSet = ns1_fileset

  Schedule = Agenda_GFS

  Storage = FileStorage

  Pool = Diaria

  Messages = Standard

Wanderlei Huttel

unread,
Sep 28, 2018, 3:23:14 PM9/28/18
to bacula-ba...@googlegroups.com
Carlos o JobDefs server paraa você não ficar repetindo todas as informações em todos os Jobs.

Exemplo:

JobDefs {
  Name = "DefaultJob"
  Type = Backup
  Level = Incremental
  Client = sv-bacula-fd
  FileSet = "sv-bacula_fileset"
  Schedule = "Agenda_GFS"
  # Storage = FileStorage  -> Remover
  Messages = Standard
  Pool = Diaria
  RunScript {
     Command = "/etc/bacula/scripts/_send_telegram.sh %i"
     RunsWhen = After
     RunsOnFailure = yes
     RunsOnClient = no
     RunsOnSuccess = yes # default, you can drop this line
  }  SpoolAttributes = yes
  Priority = 10
  Write Bootstrap = "/var/lib/bacula/%c.bsr"
}


Job {
  Name = Backup_ns1            # Obrigatório 
  JobDefs = "DefaultJob"       # Obrigatório (para poder usar ele) 
  Client = ns1-fd              # Obrigatório 
  FileSet = ns1_fileset        # Obrigatório
  # Schedule = Agenda_GFS      # Opcional. Caso queira uma Schedule diferente, basta criar o Schedule e acresentar no Job
  # Type = Backup              # Não precisa, já tem no JobDefs
  # Level = Incremental        # Não precisa, já tem no JobDefs, só executa esse Level se rodar manual, senão executa de acordo com o Schedule
  # Storage = FileStorage      # Não precisa. O correto é configurar o Storage na Pool e não no Job (pode remover até do JobDefs
  # Pool = Diaria              # Não precisa, pois ele pefa do Schedule 
  # Messages = Standard        # Não precisa, já tem no JobDefs
  # Priority = 10              # Não precisa, já tem no JobDefs. Caso queira mudar, apenas acrescente no Job que ele Sobrescreve o JobDefs
  # Write Bootstrap = "/var/lib/bacula/%c.bsr"  # Não precisa, já tem no JobDefs
}


Basicamente cada Job precisa de 1 cliente e 1 fileset, e caso queira rodar em horários diferenciados do padrão, precisa de um schedule também.

# Job com schedule padrão
Job {
  Name = Backup_ns1
  JobDefs = "DefaultJob"
  Client = ns1-fd
  FileSet = ns1_fileset
}



# Job com schedule diferente
Job {
  Name = Backup_ns1
  JobDefs = "DefaultJob"
  Client = ns1-fd
  FileSet = ns1_fileset
  Schedule = Agenda_GFS2
}

Atenciosamente 

Wanderlei Hüttel

Carlos Henrique

unread,
Sep 28, 2018, 3:45:57 PM9/28/18
to bacula-ba...@googlegroups.com

Muito obrigado pelos esclarecimentos Wanderlei, me ajudou muito, eu já havia feito um teste colocando o Jobdefs em outros Jobs e funcionou e me notificou no Telegram de boa, ainda estou aprendendo a usar o bacula, implementei ele aqui na empresa a um tempinho então ainda bato a cabeça as vezes, que bom que temos pessoas como vc dispostas a ajudar, sem querer ser chato, só mais uma dúvida, todo job que eu executo dá uns erros qnd rodo o comando “messages” no bconsole mais funciona de boa, vc sabe oq pode ser? Vide abaixo, o ip 10.50.0.60 é do próprio servidor bacula.

 

28-Sep 15:27 sv-bacula-dir JobId 1907: shell command: run AfterJob "/etc/bacula/scripts/_send_telegram.sh 1907"

28-Sep 15:27 sv-bacula-dir JobId 0: Error: bsock.c:556 Bsock send while terminated=1 on call to client:10.50.0.60:9101

28-Sep 15:27 sv-bacula-dir JobId 0: Error: bsock.c:556 Bsock send while terminated=1 on call to client:10.50.0.60:9101

28-Sep 15:27 sv-bacula-dir JobId 0: Error: bsock.c:556 Bsock send while terminated=1 on call to client:10.50.0.60:9101

*m

28-Sep 15:37 sv-bacula-dir JobId 1908: Start Backup JobId 1908, Job=Backup_ns1.2018-09-28_15.37.25_03

28-Sep 15:37 sv-bacula-dir JobId 1908: Using Device "FileStorage" to write.

28-Sep 15:22 ns1-fd JobId 1908: Warning: DIR and FD clocks differ by -895 seconds, FD automatically compensating.

28-Sep 15:37 sv-bacula-sd JobId 1908: Volume "Diaria-0012" previously written, moving to end of data.

28-Sep 15:37 sv-bacula-sd JobId 1908: Elapsed time=00:00:01, Transfer rate=54.98 K Bytes/second

28-Sep 15:37 sv-bacula-sd JobId 1908: Sending spooled attrs to the Director. Despooling 29,590 bytes ...

Bruno Henrique Santos

unread,
May 29, 2023, 1:20:47 PM5/29/23
to Bacula Backup-Pt-Br
Pessoal boa tarde, estou efetuando tentativa de configuração, porem parei no problema de syntax error. 

Alguem consegue me auxiliar?

Wanderlei Huttel

unread,
May 29, 2023, 6:28:47 PM5/29/23
to bacula-ba...@googlegroups.com
Olá Henrique, tem uma opção de débito no script. Só habilitar e verificar.

Att Wanderlei 

Bruno Henrique Santos

unread,
May 30, 2023, 7:25:00 AM5/30/23
to bacula-ba...@googlegroups.com
Olá Vanderlei tudo bem? Espero que sim!

Pois então, habilitei o Debug, e ele aparece somente a mensagem:

Synstax error.

Tentei pesquisar pelo log mas também não localizei o diretório.

Atenciosamente

Wanderlei Huttel

unread,
May 30, 2023, 2:45:09 PM5/30/23
to bacula-ba...@googlegroups.com
Oi Bruno, está usando a versão do meu github?
https://github.com/wanderleihuttel/bacula-utils/blob/master/telegram/_send_telegram.sh

Entra no nosso grupo do telegram que é mais fácil de ajudar.:
https://t.me/baculabr

Atenciosamente 

Wanderlei Hüttel



Bruno Henrique Santos

unread,
May 31, 2023, 12:15:53 PM5/31/23
to bacula-ba...@googlegroups.com
Estou usando sim, coloquei o questionamento no grupo. 



José Ferreira Neto

unread,
Feb 23, 2024, 9:13:02 AM2/23/24
to Bacula Backup-Pt-Br
Bom dia!
Estou com problema para compilar esse aplicativo no Debian 12...
root@bacula-dir:/usr/src/tg# make
gcc -I. -I. -I./tgl -Wno-error  -I/usr/local/include -I/usr/include -I/usr/include -I/usr/include/lua5.2  -DHAVE_CONFIG_H -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-deprecated-declarations -fno-strict-aliasing -fno-omit-frame-pointer -ggdb -Wno-unused-parameter -fPIC -c -MP -MD -MF dep/main.d -MQ objs/main.o -o objs/main.o main.c
main.c: In function ‘termination_signal_handler’:
main.c:824:7: error: ‘write’ reading 18 bytes from a region of size 17 [-Werror=stringop-overread]
  824 |   if (write (1, "SIGNAL received\n", 18) < 0) {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from main.c:29:
/usr/include/unistd.h:378:16: note: in a call to function ‘write’ declared with attribute ‘access (read_only, 2, 3)’
  378 | extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur
      |                ^~~~~
main.c:824:7: error: ‘write’ reading 18 bytes from a region of size 17 [-Werror=stringop-overread]
  824 |   if (write (1, "SIGNAL received\n", 18) < 0) {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/unistd.h:378:16: note: in a call to function ‘write’ declared with attribute ‘access (read_only, 2, 3)’
  378 | extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur
      |                ^~~~~
cc1: all warnings being treated as errors
make: *** [Makefile:48: objs/main.o] Erro 1
Instalei todas as dependências, compila, porém dá esse erro.

Reply all
Reply to author
Forward
0 new messages