rpm을 사용한 cron 작업 설정이 작동하지 않습니다.

rpm을 사용한 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.

각 부분

  • %준비하다
  • %세워
  • %설치하다
  • %확인하다

컴퓨터에서 실행세워이것은 rpmrpm이 설치된 시스템에는 없습니다. 당신은해야절대 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

관련 정보