我试着按照以下方式运行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");