即时尝试构建包含的rpm文件
1 file /usr/local/stats.sh
Run Code Online (Sandbox Code Playgroud)
rpm会做一件事
echo -e "*/5 * * * * /usr/bin/sh /usr/local/stats.sh" >> /var/spool/cron/root
Run Code Online (Sandbox Code Playgroud)
我已经开始了
Name: stats
Version: 0.1
Release: el%{redhat_releasever}%{redhat_releasever_minor}.1
Summary: stats
Source0: %{svn_url_Systems}/%{name}.spec
BuildArch: noarch
Group: %{repo_name_Systems}
License: stat
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
Script
%prep
%setup -cT
%build
%{__mkdir} -p %{buildroot}/%{_sysconfdir}/
echo -e "*/5 * * * * /usr/bin/sh /usr/local/stats.sh " >> /var/spool/cron/root
%changelog
Run Code Online (Sandbox Code Playgroud)
任何提示,使这个rpm规范文件正确和工作!
小智 8
更容易不操作'/ var/spool/cron/root'中的crontab.请改用/etc/cron.d目录.创建一个包含crontab行的文件.在此目录中安装此文件.优点是卸载rpm-package时将自动卸载此文件.
因此,您只需要构建一个将安装两个文件的rpm文件.
%build宏不是你需要的东西.您需要根据主机上的目标目录安排打包.
%install
mkdir -p %{buildroot}/usr/local
mkdir -p %{buildroot}/etc/cron.d
cp ...mysource/stats.sh %{buildroot}/usr/local
cp ...mysource/mystatstiming.cron %{buildroot}/etc/cron.d
Run Code Online (Sandbox Code Playgroud)
那么你需要定义文件标志设置:
%files
%defattr(755,root,root)
/usr/local/stat.sh
%defattr(644,root,root)
/etc/cron.d/mystatstiming.cron
Run Code Online (Sandbox Code Playgroud)