linux docker容器定时任务执行异常

260 阅读1分钟

crontab执行docker定时任务失败

脚本内容

docker exec -it openldap slapcat > /app/backup/openldap/ldapbackup_`date + %Y%m%d`.ldif
#只保留九天的数据
find /app/backup/openldap -mtime +8 -name "*.ldif" -exec rm -f {} \;
#异机备份
scp /app/backup/openldap/ldapbackup_`date + %Y%m%d`.ldif user@地址:文件目录

问题描述

定时执行后,只产生对应文件,但文件内容为空。

错误原因

cron执行docker失败是因为exec加了-it参数

exec 加了-it 参数就开启了一个终端,计划任务无法进入任何终端

修正脚本

docker exec openldap slapcat > /app/backup/openldap/ldapbackup_`date + %Y%m%d`.ldif
#只保留九天的数据
find /app/backup/openldap -mtime +8 -name "*.ldif" -exec rm -f {} \;
#异机备份
scp /app/backup/openldap/ldapbackup_`date + %Y%m%d`.ldif user@地址:文件目录

问题解决。