I'm having a problem in a RHEL 5.3 after I tried installing Perl Power Tools. Everything was working fine until I tried installing that package by hand (the server has no access to internet).
At first every shell script that used awk was giving errors so I removed Perl Power Tools and reinstalled awk from a local repository that is configured in the server and that problem was solved. After that cron jobs started to give errors with the command date.
When I perform a "man date" this is comming out:
DATE(1) User Contributed Perl Documentation DATE(1) Name: date Description: display or set date and time Author: Joshua Gross License: NAME date - display or set date and time perl v5.8.8 2014-12-18 DATE(1) (END)
But the default date command should give this other output:
DATE(1) User Commands DATE(1) NAME date - print or set the system date and time SYNOPSIS date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] DESCRIPTION Display the current time in the given FORMAT, or set the system date. -d, --date=STRING display time described by STRING, not ‘now’ -f, --file=DATEFILE like --date once for each line of DATEFILE -r, --reference=FILE display the last modification time of FILE -R, --rfc-2822 output date and time in RFC 2822 format --rfc-3339=TIMESPEC output date and time in RFC 3339 format. TIMESPEC=‘date’, ‘seconds’, or ‘ns’ for date and time to the indicated precision. -s, --set=STRING set time described by STRING -u, --utc, --universal print or set Coordinated Universal Time --help display this help and exit
I tried uninstalling date and reinstalling coreutils (the package that contains date) but for some reason the new date command keeps comming back. I don't know how to restore the old date command. Thanks in advance.
This is how date is being used inside the scripts and the error it produces:
date --date="1 days ago" +%Y%m Option -date not support in this version.
When I try that in another server with the default date command it runs fine.
This is the output of which date:
[root@wrongserver ~]# which date /bin/date
Output of date --version in normal server:
[root@OKserver lib64]$ date --version date (GNU coreutils) 5.97 Copyright (C) 2006 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law. Written by David MacKenzie.
Output of date --version in problematic server:
[root@wrongserver ~]# date --version date (GNU coreutils) 5.97 Copyright (C) 2006 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law. Written by David MacKenzie.
Seems like the only thing that didn't changed after reinstallation was the man page and I'm actually using the same date binaries, also the date is comming from the right package
[root@domstats ~]# rpm -qf /bin/date coreutils-5.97-19.el5
But I'm still getting the errors when I run the date command in scripts using crontab, I think I didn't remarked that enough before. The error with the date command comes ONLY when the line
date --date="1 days ago" +%Y%m is run in a script with crontab. If I run the line in the prompt it goes fine, If I run the script by hand it also works.
I made some tests and changing the order like this make the scripts run normally with cron
date +%Y%m --date="1 days ago", of course, changing this in the scripts I have in cron is a pain and it should work normally since in the other server does work.