Jump to content

gvan

Forum Members
  • Posts

    210
  • Joined

  • Days Won

    2

Everything posted by gvan

  1. Пожалуйста. Т.е. в итоге заработало? Еще нужно не забывать в конце конф-файлов и текстовых скриптов добавлять пустую строку (иногда это может быть критично для нормального выполнения задач).
  2. Вроде все нормально. Не хватает содержимого конф-файла /opt/etc/crontab
  3. Я тоже об этом подумал. Есть желание это оформить в отдельную тему. Да и так правильней будет: сбор логов это одно дело, а управление их ротацией - другое. Могут быть и другие службы запущены, которые пишут свои логи в отдельные файлы (у меня это, например, прокси). Просто кроме меня пока это понадобилось только одному пользователю, поэтому пока руки не доходили
  4. Хорошо. Покажите содержимое файлов /opt/etc/crontab и вывод команды: ls -l /opt/etc/crontab ls -l /opt/etc/cron.5mins/test.sh ps | grep cron Также в test.sh лучше написать date >> /opt/tmp/crontest.txt Также, с учетом того, что cron работает "поверх" основной системы, то свои логи в веб-интерфейсе роутера он не показывает. Желательно включить логирование через ng-syslog, тогда свои сообщения (в т.ч. и об ошибках cron будет бросать в /opt/var/log/messages).
  5. Уже ответил в теме Просмотр информации SMART (здоровья) подключенного жёсткого диска по возможным проблемам с cron.
  6. Если установлен обычный cron через opkg install cron, и файловая система на диске с поддержкой opkg ntfs или fat, то работать задачи из cron не будут. Нужно поменять файловую систему на ext2/ext3 или установить crontab из busybox (п.2)
  7. Да, это нужно обязательно сделать. В логе будет проще что-то найти. Да и хранить древние, никому ненужные объемы данных никакого смысла нет. Свое предыдущее сообщение немного дополнил, конфигурацию для ротации /opt/var/log/messages вынес в отдельный файл (чтобы не изменять основной конф-файл logrotate). Пробуйте. Возможно, что-то не учел или где-то ошибся. Если не получится или что-то не заработает, как нужно, сообщайте. Будем разбираться.
  8. Ротация логов в entware, записанных на внешний USB-диск
  9. Все можно сделать. И по объему и по времени. Это же linux. Ставьте logrotate (возможно, он по дефолту уже стоит - я не помню) и настраивайте /opt/etc/logrotate.conf. Только еще нужно в /opt/etc/cron.daily засунуть задачу, чтобы он запускал ротацию каждые сутки. И, конечно, предварительно поставить cron. Сейчас спешу. Если не разберетесь и требуется дополнительная помощь, то могу выложить пример своей конфигурации для logrotate и cron.
  10. А точно на кинетике у вас 192.168.6.1 адрес, а не 192.168.1.1? Если syslog не запущен, то что выдает ручная команда его запуска с ключом -e (вывод ошибок на консоль) "syslog-ng -e"?
  11. Хорошо. Останавливайте службу и попробуйте запустить ее вручную. Я в конф-файле изменил адрес syslog своего сервера source src { udp(ip(192.168.1.111) port(514)); internal(); unix-stream("/dev/log"); }; На самом деле на кинетике у меня адрес 192.168.1.1. Проверку на синтаксис проходит, но запускаться отказывается, т.к. syslog пытается забиндиться на указанный адрес, но естественно не может. /opt/etc/init.d$ syslog-ng -e Error binding socket; addr='AF_INET(192.168.1.111:514)', error='Cannot assign requested address (126)' Error initializing source driver; source='src' У вас адрес 192.168.6.111 - это адрес, с которого вы хотите принимать лог? А адрес кинетика какой?
  12. Я склоняюсь все-таки к тому, что у вас какая-то синтаксическая ошибка в конф-файле. Завершите процесс syslog и запустите вручную проверку конфигурации на синтаксис. /opt/etc$ /opt/etc/init.d/S01syslog-ng stop Checking syslog-ng... alive. Shutting down syslog-ng... done. /opt/etc$ syslog-ng -s syntax error in /opt/etc/syslog-ng.conf at line 14. Я намеренно внес ошибку в конф-файл, и проверка на синтаксис ее показала в той строке, в которой она находится. Если ошибок в конфигурации нет, то команда проверки завершится без каких-либо сообщений.
  13. Только тогда пропадут сообщения от системы и служб, поднятых через opkg (например, от cron). У меня после установки ng-syslog было так: source src { unix-stream("/dev/log"); internal(); }; Объединил предложенную запись с системным логгерами: source src { udp(ip(192.168.1.1) port(514)); internal(); unix-stream("/dev/log"); };
  14. Если известны команды, которые необходимо выполнить при старте роутера, то, как и отмечено выше, скрипт с ними необходимо разместить в /opt/etc/init.d, название файла должно начинаться на S (например, SxxMount_cifs, xx указано для сортировки скриптов, соответственно, скрипт будет выполняться в самом конце).Пример скрипта, выполняющегося при старте системы (не имеет отношения к монтированию), есть здесь.
  15. Если кто-то еще не планирует переходить на прошивку 2.06 в виду ее активного тестирования и наличия возможных багов и как я использует 2.05, то прилагаю скрипт, который при старте роутера выставляет соответствующие флаги в файлах allow_restart. Скрипт необходимо разместить в /opt/etc/init.d. Назвал его для примера - SxxUSBAllowReset: #!/opt/bin/sh /opt/bin/find /sys/class/scsi_disk -name allow_restart -exec /opt/bin/sh -c "/opt/bin/echo 1 > {}" \; Поначалу я в данном скрипте тупо выставлял в /sys/class/scsi_disk/0:0:0:0/allow_restart и /sys/class/scsi_disk/1:0:0:0/allow_restart единицу, но в прошивке v2.05(AAFS.6)C4 номера устройств поменялись на 2:0:0:0 и 3:0:0:0, поэтому при очередном рестарте роутера скрипт не отработал и у меня опять посыпались ошибки после остановки винта. Соответственно выше представлена команда, которая сама ищет имена устройств вне зависимости от их ID и взводит allow_restart в 1.
  16. Ну я тоже так думал. Забыл добавить информацию еще по своим экспериментам. Дополняю. Читал информацию по SMART через smartctl - хорошая: [more]SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0 2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0 3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always - 3766 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 16616 5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail Always - 0 7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0 8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail Offline - 0 9 Power_On_Hours 0x0032 041 041 000 Old_age Always - 23795 10 Spin_Retry_Count 0x0033 253 100 030 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 2737 191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 137 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 184 193 Load_Cycle_Count 0x0032 092 092 000 Old_age Always - 89817 194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 32 (Min/Max 19/55) 196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 220 Disk_Shift 0x0002 100 100 000 Old_age Always - 83 222 Loaded_Hours 0x0032 098 098 000 Old_age Always - 1021 223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 0 224 Load_Friction 0x0022 100 100 000 Old_age Always - 0 226 Load-in_Time 0x0026 100 100 000 Old_age Always - 347 240 Head_Flying_Hours 0x0001 100 100 001 Pre-fail Offline - 0 SMART Error Log Version: 1 No Errors Logged[/more] Подключил винт к ноутбуку, загрузил линукс, проверил диск на bad block. Никаких проблем не обнаружено. Как и писал выше, если диску (но, скорее всего речь идет о прослойке USB-SATA) не давать спать, то никаких проблем не возникает. Как решил проблему через установку /sys/block/sda/device/scsi_disk*/allow_restart в 1 уже написал. Два дня тестирую, пока проблема не проявилась. А раньше достаточно было выждать 10 минут (подождать отключения диска) и обратиться к нему вновь. Т.е. баг у меня воспроизводится с 100% вероятностью. Теперь же диск спит, сколько хочет и с радостью просыпается без всяких ошибок. И судя по всему, проблема для linux не нова. Вот еще в тему http://www.yqcomputer.com/1116_5473_1.htm
  17. Keenetic Giga 2, черный, v2.05(AAFS.4)C4 (но проблема началась на последней официальной прошивке или, возможно на бете с opkg). На самом деле было изменено несколько обстоятельств. Кроме установки прошивки с поддержкой opkg, на USB диске ADATA CH94 1ТБ (внутри TOSHIBA MK1059GSM) поменял еще и файловую систему с NTFS на EXT2. После засыпания HHD и последующем обращении к нему стали сыпаться ошибки (копировал с другого форума и сообщения, где тип ФС NTFS, поскольку проблему удалось решить и сейчас таких ошибок у меня нет): Jan 21 02:39:18ndmkernel: sd 0:0:0:0: [sda] Device not ready: <6>: Sense Key : 0x2 [current] Jan 21 02:39:18ndmkernel: : ASC=0x4 ASCQ=0x2 Jan 21 02:39:18ndmkernel: end_request: I/O error, dev sda, sector 1183 Jan 21 02:39:18ndmkernel: tntfs error (device sda1, pid 3): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x230 (сектора любые). Jan 21 02:39:18ndmkernel: tntfs error (device sda1, pid 3): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x231. После нескольких таки сообщений ФС автоматом перемонтировалась в ридонли. Соответственно, такая ситуация совсем не устраивала. Вот еще пример подобной ошибки у другого пользователя http://forum.zyxmon.org/topic581-giga-ii-usb-hdd-ukhodit-v-read-only.html Что делал, чтобы решить проблему: 0. Искал решения в Сети. 1. Обновился на тестовую 2.06. Не помогло (-) 2. Подключил внешнее питание к диску через Y-USB кабель. (-) 3. Заменил коробку (интерфейс USB-SATA). (-) 4.1 Пробовал через hdparm отключить засыпание винта. (-) 4.2 (бубен) Заменил Ext2 на Ext3. (-) 5. В соответствии с п. 0 в cron добавил задачу, которая каждые 5 минут пишет в файл на диск текущее время. Помогло (+). Т.к. роутер с винтом стоит в кладовке, то круглосуточная работа диска не напрягала. Но с учетом того, что винт требуется редко, то хотелось решить вопрос правильным способом: чтобы винт все-таки отключался по таймауту, когда не требуется, и проспался без ошибок при обращении к нему (т.к. хоть и немного, но питание двигатель потребляет, плюс износ самого двигателя). Дополнительный поиск вывел на следующую страницу http://www.nslu2-linux.org/wiki/FAQ/DealWithAutoSpinDownOnSeagateFreeAgent Установка параметра echo 1 > /sys/block/sda/device/scsi_disk*/allow_restart решила мою проблему. Винт засыпает и при просыпании не возникает ошибок. Сделал скрипт, который запускается при старте роутера и выполняет установку allow_restart в 1. Соответственно, вопрос. Что-то поменялось в прошивке, если ранее у меня таких проблем не возникало? И возможно ли сделать в следующих прошивках, чтобы данный параметр выставлялся автоматом? Или же проблема настолько специфичная и узко зависит от прослойки USB-SATA, что проявляется очень редко.
×
×
  • Create New...