我有下面的 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