다음 크론 파일이 있습니다
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