Проблема с датой создания файла.


Главная Форумы System X (Lenovo) System X (Lenovo) — всё про серверы Проблема с датой создания файла.

В этой теме 9 ответов, 3 участника, последнее обновление  Dmitriy Sh 5 года/лет, 10 мес. назад.

  • Автор
    Сообщения
  • #14335

    Dmitriy Sh
    Участник

    Добрый день.
    Есть скрипт, который по ftp проверяет дату создания дамп-файлов, сверяет их с текущей датой, и если дамп за «сегодняшнее число» — в наличие, то говорит что всё «ОК».
    Но я стал замечать некоторые сбои в работе скрипта.
    Иногда, при проверке даты создания дампа, скрипт возвращает неверное время, например :

    Дата дамп файла : 03.01.2012 23:53:00
    Дамп файл : dump_2012-01-04.dmp
    Дата дамп файла : 05.01.2012 1:45:00
    Дамп файл : dump_2012-01-05.dmp

    в то время как LS — L показывает совсем другое :

    -rw-rw-rw- 1 my_login staff 27870528195 Jan 04 03:53 dump_2012-01-04.dmp
    -rw-rw-rw- 1 my_login staff 28393956240 Jan 05 05:45 dump_2012-01-05.dmp

    На сервере установлена ОС AIX 5.2
    Вот что показывает :

    my_login@[my_server]#date
    Sun Jan 8 13:16:23 MSD 2012

    my_login@[my_server]#date -u
    Sun Jan 8 09:16:24 GMT 2012

    my_login@[my_server]#env | grep TZ
    TZ=MSD-4

    Решится ли проблема, если поставить TZ=MSK-4 ?
    Или проблема где-то в другом месте ?

    p.s. vbs-скрипт запускает из под виндового сервера.

  • #14338

    Alex
    Участник

    Мне кажется, слово «иногда» тут лишнее. Расхождение в четыре часа присутствует всегда, просто вылазит на пограничных случаях.

    Из исходных данных не ясно, какое же время в итоге считается «правильным». Приведите (для любого файла)

    1) реальную дату создания
    2) дату, которую даёт вывод ls -l с правильной таймзоной
    3) дату, видимую, если зайти по ftp

  • #14348

    Aleksandr
    Участник

    Я столкнулся с этим, правда на линуксовой машине как сервер ftp и клиенете на ОС Windows. это проблема отоброжения клиента. Когда заходишь на сам сервер по ссш допустим, то время создания файла отображается корректно, когда с клиента ftp на линуксе, с отключенными опциями локализации вроемени — все хорошо, как толко заходишь с ОС WINDOWS по фтп, так получаешь разницу 4 часа.

  • #14355

    Alex
    Участник

    Не представляю, как такое может быть. Проверил сейчас для консольного ftp с машины коллеги (Windows 7) — всё нормально.

    Более того, в линуксе можно выставить любую таймзону, на отображение времени файлов в ftp это не повлияет (у меня не повлияло, по крайней мере, для штатного консольного).

  • #14359

    Dmitriy Sh
    Участник

    Мне кажется, слово «иногда» тут лишнее. Расхождение в четыре часа присутствует всегда, просто вылазит на пограничных случаях.

    Из исходных данных не ясно, какое же время в итоге считается «правильным». Приведите (для любого файла)

    1) реальную дату создания
    2) дату, которую даёт вывод ls -l с правильной таймзоной
    3) дату, видимую, если зайти по ftp

    Вот например сегодняшнее число 11.01.2012

    1) выгрузка дампа началась в 02:50 AM, закончилась 05:48 AM
    2) подключаюсь по ssh
    ls -l c правильной таймзоной
    -rw-rw-rw- 1 my_login staff 28444942470 Jan 11 05:48 dump_2012-01-11.dmp
    3) захожу по фтп через Far (без ssh), показывает дату 11.01.12 01:48

    p.s. Вы правы, слово «иногда» тут лишнее, разница в 4 часа всегда, но я так выразился лишь потому, что ошибку заметил лишь тогда, когда дамп был выгружен до 4 утра, и разница во времени перевела дату на вчерашнее число, что и послужило «ложной ошибкой», скрипт показал что дампа нет, хотя он был 🙂

    Я столкнулся с этим, правда на линуксовой машине как сервер ftp и клиенете на ОС Windows. это проблема отоброжения клиента. Когда заходишь на сам сервер по ссш допустим, то время создания файла отображается корректно, когда с клиента ftp на линуксе, с отключенными опциями локализации вроемени — все хорошо, как толко заходишь с ОС WINDOWS по фтп, так получаешь разницу 4 часа.

    Единственно что приходит на ум, использовать в vbs скрипте ssh-подключение…

  • #14360

    Alex
    Участник

    Единственно что приходит на ум, использовать в vbs скрипте ssh-подключение…

    Ну это вы хватили. Собственно, проблема была б решена куда быстрее, если б исходные данные были полнее 😉

    Сделаю допущение:

    У вас на aix-сервере не штатный ftp-сервер, а proftpd.

    Если это так — всё решается выключением единственного ключа в proftpd.conf: TimesGmt off (по дефолту он включен).

  • #14361

    Dmitriy Sh
    Участник

    [quote]Единственно что приходит на ум, использовать в vbs скрипте ssh-подключение…

    Ну это вы хватили. Собственно, проблема была б решена куда быстрее, если б исходные данные были полнее 😉

    Сделаю допущение:

    У вас на aix-сервере не штатный ftp-сервер, а proftpd.

    Если это так — всё решается выключением единственного ключа в proftpd.conf: TimesGmt off (по дефолту он включен).[/quote]

    На сервере стоит vsftpd, при этом в конфиге vsftpd.conf я не нашел опции
    use_localtime=YES, поэтому он и использует GMT

  • #14362

    Aleksandr
    Участник

    use_localtime
    If enabled, vsftpd will display directory listings with the time in your local time zone. The default is to display GMT. The times returned by the MDTM FTP command are also affected by this option.

    Default: NO

  • #14367

    Alex
    Участник

    я не нашел опции use_localtime=YES, поэтому он и использует GMT

    Ну та же петрушка, в-общем. Поправили?

  • #14372

    Dmitriy Sh
    Участник

    [quote]я не нашел опции use_localtime=YES, поэтому он и использует GMT

    Ну та же петрушка, в-общем. Поправили?[/quote]

    Ага, спасибо 🙂

Для ответа в этой теме необходимо авторизоваться.