linux – 由于Date :: Manip问题,无法运行logwatch

我试着按照以下方式运行logwatch
[root@machine cron.daily]# ./0logwatch 
ERROR: Date::Manip unable to determine TimeZone.

Execute the following command in a shell prompt:
        perldoc Date::Manip
The section titled TIMEZOnes describes valid TimeZones
and where they can be defined.

我的约会日期如下

root@machine cron.daily]# date
Thu Aug 23 06:25:21 GMT 2012

现在基于各种论坛的细节,我试图通过设置来解决这个问题

/etc/timezone to “+0800”

但它不起作用

我的/ etc / localtime指向/usr/share / zoneinfo / GMT,由puppet管理

我该如何解决这个问题?我仍然希望我的所有机器都在GMT时区.

编辑:
可悲的是,
这两个更改都不起作用:

[root@machine cron.daily]# cat /etc/TIMEZONE 
UTC

广达

[root@machine cron.daily]# cat ~/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
export TZ=GMT

export PATH
[root@machine cron.daily]# source ~/.bash_profile
[root@machine cron.daily]# ./0logwatch 
ERROR: Date::Manip unable to determine TimeZone.

Execute the following command in a shell prompt:
        perldoc Date::Manip
The section titled TIMEZOnes describes valid TimeZones
and where they can be defined.

解决方法

您当前的时区是GMT,为什么将/ etc / timezone设置为“0800”?

perldoc Date :: Manip

The following time zone names are currently understood (and can be used in parsing dates).  These are zones
   defined in RFC 822.

       Universal:  GMT,UT
       US zones :  EST,EDT,CST,CDT,MST,MDT,PST,PDT
       Military :  A to Z (except J)
       Other    :  +HHMM or -HHMM
       ISO 8601 :  +HH:MM,+HH,-HH:MM,-HH

   In addition,the following time zone abbreviations are also accepted. These do not come from a standard,but were
   included in prevIoUs releases of Date::Manip 5.xx and are preserved here for backward compatibility:

      IDLW    -1200    International Date Line West
      NT      -1100    Nome
      SAT     -0400    Chile
      CLDT    -0300    Chile Daylight
      AT      -0200    Azores
      MEWT    +0100    Middle European Winter
      MEZ     +0100    Middle European
      FWT     +0100    french Winter
      GB      +0100    GMT with daylight savings
      SWT     +0100    Swedish Winter
      MESZ    +0200    Middle European Summer
      FST     +0200    french Summer
      METDST  +0200    An alias for MEST used by HP-UX
      EETDST  +0300    An alias for eest used by HP-UX
      EETEDT  +0300    Eastern Europe,USSR Zone 1
      BT      +0300    Baghdad,USSR Zone 2
      IT      +0330    Iran
      ZP4     +0400    USSR Zone 3
      ZP5     +0500    USSR Zone 4
      IST     +0530    Indian Standard
      ZP6     +0600    USSR Zone 5
      AWST    +0800    Australian Western Standard
      ROK     +0900    Republic of Korea
      AEST    +1000    Australian Eastern Standard
      ACDT    +1030    Australian Central Daylight
      CADT    +1030    Central Australian Daylight
      AEDT    +1100    Australian Eastern Daylight
      EADT    +1100    Eastern Australian Daylight
      NZT     +1200    New Zealand
      IDLE    +1200    International Date Line East

   All other time zone abbreviations come from the standards. In many cases,an abbreviation may be used for multiple
   timezones. For example,NST stands for Newfoundland Standard -0330 and north Sumatra +0630.  In these cases,only
   1 of the two is available. I have tried to use the most recent deFinition,and of those (if multiple timezones use
   the abbreviation),the most commonly used. I don’t claim that I’m correct in all cases,but I’ve done the best I
   Could.

   The list of abbreviations available is documented in the Date::Manip::DM5abbrevs document in this module,or more
   fully in the Date::Manip::Zones document of Date::Manip::6.xx.

   Date::Manip must be able to determine the time zone the user is in.  It does this by looking in the following
   places:

      $Date::Manip::TZ (set with Date_Init or in Manip.pm)
      $ENV{TZ}
      the Unix ‘date‘ command (if available)
      $main::TZ
      /etc/TIMEZONE
      /etc/timezone

   At least one of these should contain a time zone in one of the supported forms.  If none do by default,the TZ
   variable must be set with Date_Init.

   The time zone may be in the STD#DST format (in which case both abbreviations must be in the table above) or any of
   the formats described above.  The STD#DST format is NOT available when parsing a date however.  The following
   forms are also available and are treated similar to the STD#DST forms:

         US/Pacific
         US/Mountain
         US/Central
         US/Eastern
         Canada/Pacific
         Canada/Mountain
         Canada/Central
         Canada/Eastern

您正在运行哪个Date :: Manip版本?

如果由于某些原因,Perl不读取/ etc / timezone或/ etc / TIMEZONE,则可以将此行添加到/root/.bash_profile中:

export TZ=GMT

通过运行源/root/.bash_profile使其立即生效,然后重试.

更新时间:8月30日星期四10:55:54 ICT 2012

尝试在logwatch perl脚本中设置时区:

use Date::Manip;

Date_Init("TZ=GMT");

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...