Jump to content
GanjaKyp

Как сменить часовой пояс

Recommended Posts

...

Я к тому, что в своих постах показал что получается без всяких ссылок, так же во многих роутерах (и без Entware) используется переменная в "/tmp/TZ".

Файл /etc/TZ это символьная ссылка на /tmp/TZ где запись возможна.

А Вы прочли написанное, Entware не использует этот файл. А во времена musl этот файл имел неподдерживаемый формат (полная таймзона).

Возможно, вы забыли переменную TZ, которая устанвливается в профиле и имеет приоритет. Проверяйте

~ # rm /opt/etc/TZ
~ # unset TZ
~ # date
Sat Jun 25 13:08:34 UTC 2016
~ # echo GMT+3 > /tmp/TZ
~ # date
Sat Jun 25 13:09:02 UTC 2016
~ # echo GMT-3 > /tmp/TZ
~ # date
Sat Jun 25 13:09:14 UTC 2016

Share this post


Link to post
Share on other sites

получается началось это после того как я все таки решил разобраться с часовыми поясами, до этого месяца 2-3 нормально крутился motion, asterisk и nginx и всякие shellinabox

Заданная в морде таймзона записывается в файл в файловой системе tmpfs, который расположен в памяти и создается при загрузке роутера. Сломать руками можно (есть доступ на запись, но до полной перезагрузки).

Создаййте отдельную тему "Не могу установить entware и привидите лог начиная с момента, когда распознается флешка".

Для правильного форматирования флешки часто нужно удалить раздел, потом создать раздел и форматировать.

Share this post


Link to post
Share on other sites

в /etc/profile нет установки переменной TZ, в /root/.profile сделал export TZ="", в /etc/init.d/rc.unslung тоже TZ="", после перезагрузки часовой пояс снова сбрасывается на UTC

после ввода unset TZ часовой пояс считывается из /etc/TZ

Share this post


Link to post
Share on other sites

Я уже писал - переменная имеет приоритет перед файлом. Где она установлена - Вам и карты в руки. Может и прошивка на Вашем устройстве ее устанавливает. У меня в extra изменение таймзоны в морде идет в файл /tmp/TZ

export TZ="" как раз дает эффект UTC. Моя ошибка!

замените в .profile строку с TZ=

на `unset TZ`

Share this post


Link to post
Share on other sites

zyxmon

Я про пост

Подскажите как сменить часовой пояс

и кто му что не на добыло ни каких сложностей с переменной

в ndm указан, в /root/.profile есть строка export TZ=`cat /etc/TZ | tail -n 1`

Share this post


Link to post
Share on other sites
в /etc/profile нет установки переменной TZ, в /root/.profile сделал export TZ="", в /etc/init.d/rc.unslung тоже TZ="", после перезагрузки часовой пояс снова сбрасывается на UTC после ввода unset TZ часовой пояс считывается из /etc/TZ

Повторюсь где что лежит

/tmp # ls -l /etc
lrwxrwxrwx    1 root     root             7 Jun 24 11:59 TZ -> /var/TZ
lrwxrwxrwx    1 root     root             7 Jun 24 11:59 localtime -> /var/TZ
...
lrwxrwxrwx    1 root     root            16 Jun 24 11:59 profile -> /opt/etc/profile
/tmp # ls -l
-rw-r--r--    1 root     root             6 Oct 29  2013 TZ
...
/tmp # ls -l /var
lrwxrwxrwx    1 root     root             4 Jun 24 11:59 /var -> /tmp
/tmp #

/tmp/TZ он же /etc/TZ или он же /etc/localtime или он же /var/TZ

Опять же почему нельзя просто при запуске например /opt/etc/init.d/S00хххх не сделать все что нужно с /tmp/TZ.

Share this post


Link to post
Share on other sites
...

Опять же почему нельзя просто при запуске например /opt/etc/init.d/S00хххх не сделать все что нужно с /tmp/TZ.

Этим занимается прошивка. И не нужно в ее работу вмешиваться!!!

Если в прошивке опять вернуться на musl, то файл станет бинарным! А если прошивка перейдет на glibc - то еще и имя поменяет.

Давайте так - мухи отдельно, котлеты отдельно.

В Entware таймзона задается отдельно от прошивки. В настоящий момент можно создать силинк

/opt/etc/TZ --> /etc/TZ

и таймзоны будут совпадать. Раньше было проще выкусить кусок бинарного прошивочного файла TZ в переменную.

Но в будущем возможно все это придется изменить.

А у GanjaKyp или прошивка не создает нужные силинки, или прошивка работает не через файл, а через переменную.

Share this post


Link to post
Share on other sites

в общем я в /opt/root/.profile прописал

echo GMT-6 > /opt/etc/TZ

unset TZ

но это получается происходит только когда я в терминал захожу? или при старте системы тоже?

а началось все видимо оттого что я случайно удалил файл /etc/TZ вместо /opt/etc/TZ, если я правильно понял это и есть файл самой прошивки?

Share this post


Link to post
Share on other sites

еще в файле /opt/root/.profile есть строка !/bin/sh, а при запуске терминала сразу же появляется ошибка

BusyBox v1.24.1 () built-in shell (ash)

-sh: !/bin/sh: not found

/root #

эта строка нужна вообще?

Share this post


Link to post
Share on other sites
еще в файле /opt/root/.profile есть строка !/bin/sh, а при запуске терминала сразу же появляется ошибка

BusyBox v1.24.1 () built-in shell (ash)

-sh: !/bin/sh: not found

/root #

эта строка нужна вообще?

Эта строка называется "shebang", и правильное ее написание таково:

#!/bin/sh

У вас же пропущен символ '#' в начале, потому некорректно работает.

Share this post


Link to post
Share on other sites
в общем я в /opt/root/.profile прописал

echo GMT-6 > /opt/etc/TZ

unset TZ

но это получается происходит только когда я в терминал захожу? или при старте системы тоже?

а началось все видимо оттого что я случайно удалил файл /etc/TZ вместо /opt/etc/TZ, если я правильно понял это и есть файл самой прошивки?

.profile выполняется, когда входите в терминал.

Но файл /opt/etc/TZ "действует" на все приложения Entware

/etc/TZ должен создаваться прошивкой при старте. Точнее так (на примере Extra)

/var это симлинк на /tmp

Далее файл TZ создается в /tmp

Далее /etc/TZ это симлинк на /var/TZ

Все симлинки жестко прописаны в прошивке.

echo GMT-6 > /tmp/TZ

Все восстановит. Но это должно происходить при загрузке прошивки автоматически.

PS У меня /opt/root/.profile такой

#!/bin/sh

#export TZ=`cat /etc/TZ | tail -n 1`
export PS1='\w$ '
. /opt/etc/profile

Первая строка shebang

Вторая для красоты пустая

Третья закомментирована (не действует)

Четвертая для установленного bash - см. http://forums.zyxmon.org/viewtopic.php?p=15432#p15432

Пятая выполняет предустановленный /opt/etc/profile (команды из него)

Share this post


Link to post
Share on other sites

Как оказалось - одно дело вызов из консоли, другое дело вызов скриптов самой прошивкой.

В последнем случае (тот же rc.unslung) - если не задана переменная TZ (а в файле /opt/etc/TZ все как надо), то время в журнал, вывод комнды date из скрипта могут быть без учета таймзоны.

Это некоторая загадка, которая не соответствует документации 2002 года. С тех пор часть ulibc в этом плане не менялась. Или же я неправильно прочел документацию......

даже с пустым окружением (env -i) команда date работает в консоли правильно. Чудеса....

Share this post


Link to post
Share on other sites

Объяснение всего этого оказалось элементарным.

В хук скриптах прошивки задана неверная (по видимому пустая) переменная TZ.

добавление в начала таких скриптов `unset TZ` все исравляет.

На мой взгляд нужно или правильно задавать TZ при вызове хуков, или не задавать совсем!

Share this post


Link to post
Share on other sites
это требует изменения в прошивке или в entware?

Все читатели уже похоже потеряли нить обсуждения.

Не беспокойтесь, все что нужно сделают в Entware-keenetic и прошивке.

Share this post


Link to post
Share on other sites
/tmp # cat TZ
TZif2M"�_�ǝ>�y�*����9i��W���l���    �<�@��m��=2���h��=����EP���`�'�����@�P������C@�̓��������������s��|d� lU�!\F�"L7�#<(�$,��%�
�&
  ��''p'��p(���)x��)��p*��p+��p,��p-��p.��p/t�p0d�p1]��2r��3=��4Ry�5���62[�6�b�8�xp8�D�9�Zp:�&�;�<p<�Cp=��p>�%p?�p@fpA���BE�pCc��D%�pEC��F�pG#��G���I���IΫ�J���K���ḶpM�TL�`�������������


MMTMSTMDSTMSKMSDMSMEETEEST�������TZif2��N�&����V��������_�������>�y�����*��������9i������W�������l�������    �����<�@������m������=2�������h������=��������EP�������`�'�����@�P������C@�̓���������������s��|d� lU�!\F�"L7�#<(�$,��%�
�&
  ��''p'��p(���)x��)��p*��p+��p,��p-��p.��p/t�p0d�p1]��2r��3=��4Ry�5���62[�6�b�8�xp8�D�9�Zp:�&�;�<p<�Cp=��p>�%p?�p@fpA���BE�pCc��D%�pEC��F�pG#��G���I���IΫ�J���K���ḶpM�TL�`�������������    
    
    
    
    
    
    

            
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    #9#9�1�#w�?��
                     *0�8@��FP��� �*0�8@��*0�!� �8@�8@��*0�LMTMMTMSTMDSTMSKMSDMSMEETEEST�������
MSK-3

Это нормально разве? Из-за этого date выдает время по UTC а не MSK-3 как указано? Cron работает в своём времени, оттого в логах каша. Помогите.
Keenetic Viva, стоковая прошивка + Entware

 

Share this post


Link to post
Share on other sites
1 час назад, Nail Krysinski сказал:

Это нормально разве?

Да.

1 час назад, Nail Krysinski сказал:

Из-за этого date выдает время по UTC а не MSK-3 как указано?

Нет.

1 час назад, Nail Krysinski сказал:

Cron работает в своём времени

Какой именно cron (из двух)?

1 час назад, Nail Krysinski сказал:

оттого в логах каша.

Вам шашечки (правильную работу cron), или ехать? Это разные вещи - время в cron и время в журнале.

1 час назад, Nail Krysinski сказал:

Keenetic Viva, стоковая прошивка

Какая именно. Номер у нее есть?

1 час назад, Nail Krysinski сказал:

+ Entware

Какой вариант Entware? Их три. Приведите содержимое /opt/etc/opkg.conf. Когда обновляли пакеты и обновляли ли хоть раз? Как это делать знаете?

Share this post


Link to post
Share on other sites

Если кракозябры - это нормально, то пусть так и будет. Я подумал что кодировка файла кривая просто. 
Cron установленный пакетным менеджером opkg. Меня смутило, что в логах на вебморде задания по крону с неверным временем, а главное конечно, чтобы заданное время в кронтабе соответствовало моему часовому поясу. Если крон работает норм, тогда можно ли исправить время в логах?
Прошивка 2.05.C.4.0-5
Поставить  Entware заставил полурабочий стоковый впн-сервер и такой-же ddns-клиент, искал ребут по расписанию.
 Entware скачивал http://pkg.entware-keenetic.ru/binaries/keenle/installer/installer-keenle.tar.gz
 

~ # cat  /opt/etc/opkg.conf
src/gz keenle http://pkg.entware-keenetic.ru/binaries/keenle
dest root /
lists_dir ext /opt/var/opkg-lists

насчет обновления пакетов нашел и выполнил, результат:
 

~ # opkg update
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/Packages.gz.
Updated list of available packages in /opt/var/opkg-lists/keenle.
~ # opkg upgrade
~ # 

т.е. ничего не произошло. Наверно всё свежее. Поставил только вчера.

Share this post


Link to post
Share on other sites
24 минуты назад, Nail Krysinski сказал:

Если кракозябры - это нормально, то пусть так и будет.

Это бинарный файл.

24 минуты назад, Nail Krysinski сказал:

Cron установленный пакетным менеджером opkg.

А разве есть другой способ установки приложений? расскажите всем о таком!

 

24 минуты назад, Nail Krysinski сказал:

Прошивка 2.05.C.4.0-5

Рекомендую перейти на 2.07 (на 2.08 пока не нужно).

24 минуты назад, Nail Krysinski сказал:

Если крон работает норм, тогда можно ли исправить время в логах?

 

За логи отвечает прошивка. Все вопросы к ней. Но лучше сразу перейти на 2.07!

Приложения Entware берут часовой пояс из фала /opt/etc/TZ - он текстовый, в нем должна быть Ваша зона. Если его нет, создайте. Но приоритет имеет переменная TZ - ее создает прошивка.

Правильность времени проверяйте в консоли командой date. В задание cron добавьте logger `date` и проверьте правильность работы cron.

 

Share this post


Link to post
Share on other sites
23 часа назад, zyxmon сказал:

А разве есть другой способ установки приложений? расскажите всем о таком!

Всем рассказываю: на самом деле в Entware два варианта планировщика cron - в виде апплета busybox и в виде отдельного пакета. При установке http://pkg.entware-keenetic.ru/binaries/keenle/installer/installer-keenle.tar.gz busybox шел в комплекте, так что opkg  мной не использовался для установки "вшитого" крона.;)
 

23 часа назад, zyxmon сказал:

Рекомендую перейти на 2.07 (на 2.08 пока не нужно).

Нашел прошивку kng_rc_delta_2.07.B.2.0-7, подойдет?
Вопрос не этого треда, но всё же: изначально на viva впн-сервер не выдает маршрут до локальной подсети клиенту, неделю с техподдержкой переписываюсь, толку нет. Новая прошивка может решить эту проблему? Или может быть мне написать в спец тему, где могу выложить переписку с ТП и приложить файлы? Может быть в моей прошивке есть баги о которых я не нашел информации?
Спасибо.

Edited by Nail Krysinski
частично разобрался

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...