crontab: instalando novo crontab - caminho muito longo

3

Erro. Eu tentei todas as entradas possíveis do crontab, mas nada é aceito. Sempre path too long

# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
path too long
crontab: edits left in /tmp/crontab.mqtSoV
[root@myhostname5 tmp]# cat /tmp/crontab.mqtSoV
0 * * * * /tmp/test.sh

Lançamento do Red Hat

# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)

Logs. Em outros logs e journalctl não há erros relacionados ao cron.

Sep  5 10:01:01 myhostname5 run-parts(/etc/cron.hourly)[831]: starting 0anacron
Sep  5 10:01:01 myhostname5 run-parts(/etc/cron.hourly)[877]: finished 0anacron
Sep  5 10:01:01 myhostname5 run-parts(/etc/cron.hourly)[831]: starting 0yum-hourly.cron
Sep  5 10:01:02 myhostname5 run-parts(/etc/cron.hourly)[886]: finished 0yum-hourly.cron
Sep  5 10:10:01 myhostname5 CROND[1808]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 10:20:02 myhostname5 CROND[4266]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 10:30:01 myhostname5 CROND[6182]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 10:40:01 myhostname5 CROND[6825]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 10:50:01 myhostname5 CROND[8084]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 11:00:01 myhostname5 CROND[9467]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 11:01:01 myhostname5 CROND[9737]: (root) CMD (run-parts /etc/cron.hourly)
Sep  5 11:01:01 myhostname5 run-parts(/etc/cron.hourly)[9737]: starting 0anacron
Sep  5 11:01:01 myhostname5 run-parts(/etc/cron.hourly)[9746]: finished 0anacron
Sep  5 11:01:01 myhostname5 run-parts(/etc/cron.hourly)[9737]: starting 0yum-hourly.cron
Sep  5 11:01:01 myhostname5 run-parts(/etc/cron.hourly)[9752]: finished 0yum-hourly.cron
Sep  5 11:02:16 myhostname5 crontab[9923]: (root) BEGIN EDIT (root)
Sep  5 11:03:36 myhostname5 crontab[9923]: (root) END EDIT (root)
Sep  5 11:03:50 myhostname5 crontab[10043]: (root) LIST (root)
Sep  5 11:04:02 myhostname5 crontab[10057]: (root) BEGIN EDIT (root)
Sep  5 11:04:10 myhostname5 crontab[10057]: (root) END EDIT (root)
Sep  5 11:04:13 myhostname5 crontab[10082]: (root) LIST (root)
Sep  5 11:04:29 myhostname5 crontab[10106]: (root) BEGIN EDIT (root)
Sep  5 11:04:47 myhostname5 crontab[10106]: (root) END EDIT (root)
Sep  5 11:05:13 myhostname5 crontab[10150]: (root) BEGIN EDIT (root)
Sep  5 11:05:20 myhostname5 crontab[10150]: (root) END EDIT (root)
Sep  5 11:05:45 myhostname5 crontab[10202]: (root) BEGIN EDIT (root)
Sep  5 11:06:01 myhostname5 crontab[10202]: (root) END EDIT (root)
Sep  5 11:10:01 myhostname5 CROND[10554]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 11:20:01 myhostname5 CROND[11984]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 11:30:02 myhostname5 CROND[12979]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 11:40:01 myhostname5 CROND[14476]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 11:50:01 myhostname5 CROND[16230]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 12:00:01 myhostname5 CROND[17257]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 12:01:01 myhostname5 CROND[17441]: (root) CMD (run-parts /etc/cron.hourly)
Sep  5 12:01:01 myhostname5 run-parts(/etc/cron.hourly)[17441]: starting 0anacron
Sep  5 12:01:01 myhostname5 run-parts(/etc/cron.hourly)[17450]: finished 0anacron
Sep  5 12:01:01 myhostname5 run-parts(/etc/cron.hourly)[17441]: starting 0yum-hourly.cron
Sep  5 12:01:01 myhostname5 run-parts(/etc/cron.hourly)[17456]: finished 0yum-hourly.cron
Sep  5 12:10:01 myhostname5 CROND[18756]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep  5 12:10:26 myhostname5 crontab[18864]: (root) BEGIN EDIT (root)
Sep  5 12:10:37 myhostname5 crontab[18864]: (root) END EDIT (root)
Sep  5 12:10:45 myhostname5 crontab[18898]: (root) BEGIN EDIT (root)
Sep  5 12:11:12 myhostname5 crontab[18898]: (root) END EDIT (root)
Sep  5 12:13:24 myhostname5 crontab[19828]: (root) BEGIN EDIT (root)
Sep  5 12:13:42 myhostname5 crontab[19828]: (root) END EDIT (root)
Sep  5 12:13:57 myhostname5 crontab[19900]: (root) BEGIN EDIT (root)
Sep  5 12:14:09 myhostname5 crontab[19900]: (root) END EDIT (root)
Sep  5 12:15:16 myhostname5 crontab[20132]: (root) BEGIN EDIT (root)
Sep  5 12:15:28 myhostname5 crontab[20132]: (root) END EDIT (root)
Sep  5 12:16:05 myhostname5 crontab[20190]: (root) BEGIN EDIT (root)
Sep  5 12:16:25 myhostname5 crontab[20190]: (root) END EDIT (root)

escutando trabalhos de crontab. Não há links simbólicos em / var /..

# ls -ald /var/ /var/spool/ /var/spool/cron/
drwxr-xr-x. 20 root root 4096 Aug 10 19:14 /var/
drwxr-xr-x. 14 root root 4096 May  2 11:42 /var/spool/
drwx------.  2 root root 4096 Jul  8  2014 /var/spool/cron/


# crontab -l
no crontab for root

Aqui, a saída strace em gist.github.com

Eu não sei o que é isso debuginfo stuff

# yum --enablerepo='*' install cronie-debuginfo
Loaded plugins: priorities, product-id, rhnplugin, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
47 packages excluded due to repository priority protections
No package cronie-debuginfo available.
Error: Nothing to do

# yum --enablerepo='*' search debuginfo
Loaded plugins: priorities, product-id, rhnplugin, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
47 packages excluded due to repository priority protections
============================================================================================== N/S matched: debuginfo ==============================================================================================
percona-xtrabackup-24-debuginfo.x86_64 : Debug information for package percona-xtrabackup-24
riemann-dash-debuginfo.x86_64 : Debug information for package riemann-dash
yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages
zfs-debuginfo.x86_64 : Debug information for package zfs

  Name and summary matches only, use "search all" for everything.
    
por Ivanov 05.09.2016 / 12:32

1 resposta

5

Seu erro é um pouco bizarro. Para investigar mais, talvez você queira instalar o gdb e o pacote debuginfo para o seu comando crontab, para que possamos ver o que ele está tentando fazer. Meu comando crontab faz parte do pacote cronie , como achei:

$ rpm -qf $(command -v crontab)
cronie-1.4.12-5.fc22.x86_64

Você pode instalar o pacote debuginfo para ele com dnf :

$ sudo dnf --enablerepo='*-debuginfo' install cronie-debuginfo

Agora você pode executar o comando sob gdb e ter acesso aos nomes de função usados no código C. Eu encontrei sua mensagem de erro ocorre quando glue_strings() é chamado, então defina um ponto de interrupção lá. Como crontab é normalmente setuid root, você precisa ser root para executar o gdb. (A seguir, (gdb) é impresso por gdb como um prompt).

# gdb crontab
(gdb) break glue_strings

Inicie o programa com run seguido pelos argumentos para crontab :

(gdb) run -e

Você deve ver um dump dos parâmetros passados para glue_strings() quando foi chamado.

Breakpoint 1, glue_strings (buffer=0x7ffdaa552740 "", buffer_size=4096, 
    a=0x55c50950e567 "/var/spool/cron", b=0x55c5097154c0 <User> "meuh", 
    separator=47 '/') at misc.c:110
110             if (buffer_size <= 0)

Digite o comando c para continuar. Pode haver várias chamadas. O último antes do final do programa é o mais interessante. Adicione esta saída ao seu post original para diagnóstico adicional.

Os comandos acima para obter o debuginfo são para o Fedora. Para o Red Hat 7.1, consulte este artigo que parece estar dizendo listar os canais com

subscription-manager repos --list | grep -i debug

e habilite o que você quer, por exemplo

subscription-manager repos --enable=rhel-rs-for-rhel-7-server-fastrack-debug-rpms
    
por 05.09.2016 / 13:57

Tags