使用 rpm 的 cron 作业设置不起作用

使用 rpm 的 cron 作业设置不起作用

我有下面的 cron 文件

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

    LOG_DIR=/var/log/myapp-services-cron
    MYAPP_SERVICES_DIR=/opt/myorg/apps/myapp-services

    * * * * * myappcron node $MYAPP_SERVICES_DIR/scripts/processor.js &>> $LOG_DIR/processor.log 2>&1

这是由下面创建的转速规格文件

    Summary: Utility for testing RPM creation
    Name: utils
    Version: 1.0.0
    Release: 1
    License: GPL
    URL: http://www.both.org
    Group: System
    Packager: Rajkumar Natarajan
    Requires: bash
    Requires: nodejs >= 8.1.2
    BuildRoot: ~/rpmbuild/

    %description
    A collection of utility scripts for testing RPM creation.


    %prep
    ################################################################################
    # Create the build tree and copy the files from the development directories    #
    # into the build tree.                                                         #
    ################################################################################
    echo "BUILDROOT = $RPM_BUILD_ROOT"


    %pre

    %build

    %install
    sudo mkdir -p /etc/cron.d
    sudo mkdir -p /var/log/myapp-services-cron
    sudo mkdir -p /var/lock/myapp-services-cron
    sudo mkdir -p /opt/myorg/apps/myapp-services
    sudo cp -r /home/vagrant/cron-demo %{buildroot}/
    sudo cp -r  %{buildroot}/cron-demo/crontab /etc/cron.d/myapp-services-cron-scripts
    sudo cp -r %{buildroot}/cron-demo/scripts /opt/myorg/apps/myapp-services/


    %post

    %files
    /cron-demo/

    %postun

    %clean
    sudo rm -rf %{buildroot}/

    %changelog

cron 文件每分钟调用一个 nodejs 脚本。但不知怎的,cron 没有被触发。

操作系统详细信息是 -

$ lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.5.1804 (Core)
Release:    7.5.1804
Codename:   Core

我创建了用户 myappcron。 Nodejs 和脚本/处理器也位于正确的位置。

知道为什么 cron 没有被触发吗?

答案1

您对该部分的含义感到困惑%install

各部分

  • %准备
  • %建造
  • %安装
  • %查看

在您所在的机器上运行建造rpm,而不是在安装 rpm 的机器上。你应该从不使用 sudo在您的规范文件中。也许你想要这样的东西(我只写了有关你的 cron.d 文件的部分,你可以推断你需要的其他文件):

%install
mkdir -p %{buildroot}/etc/cron.d
cp -r /cron-demo/crontab %{buildroot}/etc/cron.d/myapp-services-cron-scripts

%files
/etc/cron.d/myapp-services-cron-scripts

相关内容