Tёмный: Поломался Real-time Sunlight Wallpaper в Ubuntu
Tёмный 13 фев 2012 11:44 Изменен 06 апр 2012 16:26 Редактировать Ссылка на этот пост |
Работал у меня Real-time Sunlight Wallpaper в Ubuntu. Ну это типа динамически обновляющаяся обоина, вид на землю из космоса. Выглядело примерно вот так
И буквально на днях оно сломалось. Полез чинить, примерно понял в чем трабла, но что делать дальше - хз. Собственно добрался до потрошков: по адресу /home/[юзер]/.gnome2/RealtimeSunlightWallpaper лежит файлик-скриптец get_image.sh следующего содержания Text #!/bin/bash
COUNTER=0 while [ $COUNTER -lt 12 ]; do curl http://static.die.net/earth/rectangular/1600.jpg > world.jpg temp=$(stat -c%s world.jpg) if [[ $temp > 1000 ]] then rm /home/test/.gnome2/RealtimeSunlightWallpaper/gtk-sunlight/*.jpg mv world.jpg /home/test/.gnome2/RealtimeSunlightWallpaper/gtk-sunlight/sunlight_wallpaper1329116847.jpg exit 0 fi sleep 5 let COUNTER=COUNTER+1 done Скрипт действительно работает. И исправно каждые N-минут делает свеженький файл /home/[юзер]/.gnome2/RealtimeSunlightWallpaper/gtk-sunlight/sunlight_wallpaper1329116847.jpg В тырнете по адресу http://static.die.net/earth/rectangular/1600.jpg регулярно появляется свежая картинка. Казалось бы всё ок, и должно работать. Но не пашет. Проблему я почти нашел, а именно: Файлик, который в тырнете, весит около 125 кило, а срипт создает файлик весом 37 байт (!). Я ручками качнул файлик с указанного адреса, переименовал его в sunlight_wallpaper1329116847.jpg и подложил в нужную папочку, и всё заработало. Но только на время, до следующего обновления. Т.е. похоже в момент скачивания-переименования-выкладывания файлика с картинкой скрипт что-то стал делать не так. А вот что и почему - бля, хз. Хелп ми, плz. |
MoRS 13 фев 2012 12:29 Редактировать Ссылка на этот пост |
а можно это файлик 37 байт посмотреть? кинь на мыло |
Tёмный 13 фев 2012 12:37 Редактировать Ссылка на этот пост |
Хотел его сюда запостить, но он сказал, что это не жпег. Кстати, он - sunlight_wallpaper1329116847.jpg 37 байт - ни одним вьювером картинок не открывается. Отправил на мыло. |
MoRS 13 фев 2012 12:53 Редактировать Ссылка на этот пост |
а это и не жпег, это гиф 1х1px и еще и битый) наверно сервер так отдает почемуто.. Попробуй в консольке curl http://static.die.net/earth/rectangular/1600.jpg > world.jpg |
Tёмный 13 фев 2012 12:55 Изменен 13 фев 2012 13:04 Редактировать Ссылка на этот пост |
эээ
test@test-desktop:~$ curl http://static.die.net/earth/rectangular/1600.jpg > world.jpg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 37 0 37 0 0 35 0 --:--:-- 0:00:01 --:--:-- 64 test@test-desktop:~$ UPD а потом этот world.jpg где искать? Хотя и так видно, что скачалось коряво. Но если бровзером смотреть , то по ссылке http://static.die.net/earth/rectangular/1600.jpg нормальную картинку отдает. (причем нужно не "перейти по ссылке", а прям в адресную строку вставить ссылочку, т.е. бровзер носом ткнуть) |
MoRS 13 фев 2012 13:02 Редактировать Ссылка на этот пост |
это там трабла, видимо много запросов на эту картинку и решили почикать нах. Я скриптом нормально забирал сейчас а вот только что залочили |
Tёмный 13 фев 2012 13:05 Редактировать Ссылка на этот пост |
видимо много запросов на эту картинку и решили почикать нах вот суки! |
MoRS 13 фев 2012 13:10 Редактировать Ссылка на этот пост |
попробуй дописать в 4ой строке после 1600.jpg дописать знак вопроса чтобы было "1600.jpg?" |
Tёмный 13 фев 2012 13:13 Редактировать Ссылка на этот пост |
та же фигня, ничего не поменялось. качает-выкладывает 37 байт |
MoRS 13 фев 2012 13:15 Редактировать Ссылка на этот пост |
ты же его остановил, потом исправил, потом запустил? |
Tёмный 13 фев 2012 13:37 Редактировать Ссылка на этот пост |
[13:17:59] <Tёмный> "ты же его остановил, потом исправил, потом запустил?" - нет. гы [13:18:22] <MoRS> =) [13:18:31] <Tёмный> но я в консольке сказал test@test-desktop:~$ curl http://static.die.net/earth/rectangular/1600.jpg? > world.jpg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 37 0 37 0 0 44 0 --:--:-- --:--:-- --:--:-- 81 test@test-desktop:~$ curl http://static.die.net/earth/rectangular/1600.jpg? > world.jpg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 37 0 37 0 0 34 0 --:--:-- 0:00:01 --:--:-- 74 [13:18:50] <Tёмный> что я делаю не так? [13:18:54] <MoRS> ну у меня вот хуячит [13:19:04] <MoRS> а без вопроса нет [13:19:16] <Tёмный> вопрос после жпег? [13:19:34] <MoRS> да, у тебя правильно написано [13:19:57] <MoRS> ну останови скрипт может они деруцца там [13:20:10] <Tёмный> гг, а как? [13:20:32] <MoRS> killall имя файла [13:21:32] <Tёмный> я криворукий же test@test-desktop:~$ killall get_image.sh get_image.sh: процесс не найден test@test-desktop:~$ killall get_image get_image: процесс не найден test@test-desktop:~$ [13:22:56] <Tёмный> он не понимает "стой скрипт о котором я щас подумал" ? не ? [13:23:20] <MoRS> какаято фигня) [13:25:27] <Tёмный> test@test-desktop:~$ ps aux | grep sunl test 1192 0.0 0.4 18528 3796 ? S Feb09 0:01 gtk-sunlight --nodisplay test 7301 0.0 0.1 3348 888 pts/0 S+ 13:24 0:00 grep --color=auto sunl test@test-desktop:~$ [13:26:06] <Tёмный> это я типа санлайт в процессах поискал [13:27:06] <MoRS> ну попробуй ебнуть gtk-sunlight) [13:28:22] <Tёмный> ёбнул, подправил скрипт, запустил санлайт через панельку.... скрипт переписался в начальное состояние, без вопросика [13:28:45] <MoRS> вот сука [13:28:48] <MoRS> какая [13:30:05] <Tёмный> как процессу не убивая его сказать что перечитал свои конфиги-параметры ? [13:30:23] <MoRS> это как кодер надушу положит) [13:30:40] <MoRS> ебни еще раз и попробуй опять в лоб curl http://static.die.net/earth/rectangular/1600.jpg? > world.jpg [13:30:56] <Tёмный> аг, ща [13:31:59] <Tёмный> test@test-desktop:~$ kill 7309 test@test-desktop:~$ ps aux | grep sunl test 7344 0.0 0.1 3344 820 pts/0 S+ 13:31 0:00 grep --color=auto sunl test@test-desktop:~$ curl http://static.die.net/earth/rectangular/1600.jpg? > world.jpg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 37 0 37 0 0 29 0 --:--:-- 0:00:01 --:--:-- 53 test@test-desktop:~$ [13:32:07] <MoRS> рр [13:33:11] <MoRS> тогда хз как бороцца [13:35:09] <Tёмный> а бровзером понимает, и всё ок [13:35:37] <Tёмный> т.е. вручную, зашел на сайт, скачал картинку, положил куда надо - работает |
Tёмный 13 фев 2012 13:45 Редактировать Ссылка на этот пост |
аргх! там может это не у них проблема, а у меня? или таки со стороны сервера подлецы сидят? |
Tёмный 13 фев 2012 14:33 Редактировать Ссылка на этот пост |
[14:10:38] <MoRS> попробуй curl поменять на wget [14:12:14] <Tёмный> хуй test@test-desktop:~$ wget http://static.die.net/earth/rectangular/1600.jpg? > world.jpg --2012-02-13 14:11:22-- http://static.die.net/earth/rectangular/1600.jpg? Преобразование адреса static.die.net... 209.151.236.22 Устанавливается соединение с static.die.net|209.151.236.22|:80... соединились. Запрос HTTP послан, ожидание ответа... 200 OK Длина: 37 [image/gif] Saving to: «1600.jpg» 100%[=======================================================>] 37 --.-K/s в 0s 2012-02-13 14:11:23 (3,83 GB/s) - «1600.jpg» saved [37/37] ================ И да, смотрю, скрипт регулярно туда ходит и выкладывает свеженький кривой файлик. Т.е. проблема как раз в том, что он нормальный файл оттуда забрать не может. |
Tёмный 13 фев 2012 15:08 Редактировать Ссылка на этот пост |
бла бла бла ... [15:00:47] <MoRS> wget -U "ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)" http://static.die.net/earth/rectangular/1600.jpg > world.jpg [15:01:34] <Tёмный> нашел пару хуйней: еще проще, без dbus и крона: while true; do wget -r -N static.die.net/earth/mercator/1600.jpg -O /tmp/1600.jpg && feh --bg-scale /tmp/1600.jpg sleep 20m done & ======== а. точно. спасибо! Это для гнома: $ wget -r -N 'http://static.die.net/earth/mercator/1600.jpg' -O /tmp/1600.jpg; gconftool-2 -t str --set /desktop/gnome/background/picture_filename /tmp/1600.jpg ====== но в них всё сводится к тому, чтоб получить картинку. а она не дается [15:02:22] <MoRS> юзер агент указать [15:02:41] <Tёмный> м? [15:02:46] <MoRS> см выше [15:03:45] <Tёмный> а [15:03:47] <Tёмный> о! [15:03:52] <MoRS> без юзерагент он не отдает картинку [15:04:06] <Tёмный> test@test-desktop:~$ wget -U "ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)" http://static.die.net/earth/rectangular/1600.jpg > world.jpg --2012-02-13 15:03:37-- http://static.die.net/earth/rectangular/1600.jpg Преобразование адреса static.die.net... 209.151.236.22 Устанавливается соединение с static.die.net|209.151.236.22|:80... соединились. Запрос HTTP послан, ожидание ответа... 200 OK Длина: 130183 (127K) [image/jpeg] Saving to: «1600.jpg.2» 100%[=======================================================>] 130 183 69,0K/s в 1,8s 2012-02-13 15:03:40 (69,0 KB/s) - «1600.jpg.2» saved [130183/130183] [15:04:14] <MoRS> оно [15:04:26] <Tёмный> теперь как это в скрипт засунуть? [15:04:42] <MoRS> ща [15:05:14] <Tёмный> какая-то сука этот скрипт (сам файл) каждый раз приводит к нормализованному состоянию [15:05:25] <MoRS> ps axf|grep sunl [15:05:35] <MoRS> поищи там путь к ней [15:06:14] <Tёмный> где там поискать? там вообще ни х нету test@test-desktop:~$ ps axf|grep sunl 1265 ? S 0:00 \_ gtk-sunlight --nodisplay 2023 pts/0 S+ 0:00 \_ grep --color=auto sunl test@test-desktop:~$ |
Tёмный 13 фев 2012 16:46 Редактировать Ссылка на этот пост |
бла бла бла ... [16:29:57] <MoRS> попробуй wget -r -N 'http://delchat.ru/userfiles/2/img_1307694334.jpg' -O /tmp/1600.jpg; gconftool-2 -t str --set /desktop/gnome/background/picture_filename /tmp/1600.jpg [16:30:09] <MoRS> изменицца рабочий стол? [16:30:44] <Tёмный> да [16:30:50] <Tёмный> это пиздец [16:31:04] <Tёмный> зона пингвинов на 24 дюйма [16:31:08] <MoRS> гг [16:31:21] <MoRS> ща [16:31:55] <Tёмный> я подозреваю, что этот хитрый финт можно и без санлайт сделать, а чиста другими скриптами [16:35:27] <MoRS> а так? wget -A "ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)" -r -N 'http://static.die.net/earth/rectangular/1600.jpg' -O /tmp/1600.jpg; gconftool-2 -t str --set /desktop/gnome/background/picture_filename /tmp/1600.jpg [16:35:39] <MoRS> нене [16:36:16] <MoRS> wget -U "ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)" -r -N 'http://static.die.net/earth/rectangular/1600.jpg' -O /tmp/1600.jpg; gconftool-2 -t str --set /desktop/gnome/background/picture_filename /tmp/1600.jpg [16:36:23] <MoRS> вот так попробуй [16:44:17] <Tёмный> загрузилось, на секунду проскочило, и всё стало серым [16:44:33] <Tёмный> картинка не осталась (как в предыдущем разе) |
Tёмный 13 фев 2012 17:23 Изменен 13 фев 2012 17:30 Редактировать Ссылка на этот пост |
[17:16:34] <Tёмный> ггг, причем попробовал снова сделать зону пингвинов.... так картинка рабочего стола обновилась процентов на 15-20. остальное -серым
|
Tёмный 13 фев 2012 17:46 Редактировать Ссылка на этот пост |
[17:35:27] <Tёмный> .... запустил санлайт... и стало всё дефолтно-фиалетова [17:45:27] <Tёмный> сделал так test@test-desktop:~$ wget -U "ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)" -r -N 'http://static.die.net/earth/rectangular/1600.jpg' -O /tmp/1600.jpg; gconftool-2 -t str --set /desktop/gnome/background/picture_filename /tmp/1600.jpg ПРЕДУПРЕЖДЕНИЕ: комбинирование параметра -O с -r или -p означает, что весь загруженный контент будет помещён в один файл. ПРЕДУПРЕЖДЕНИЕ: время модификации файла не работает в комбинации с флагом -O. Смотрите руководство для дополнительной информации. --2012-02-13 17:42:37-- http://static.die.net/earth/rectangular/1600.jpg Преобразование адреса static.die.net... 209.151.236.22 Устанавливается соединение с static.die.net|209.151.236.22|:80... соединились. Запрос HTTP послан, ожидание ответа... 200 OK Длина: 128911 (126K) [image/jpeg] Saving to: «/tmp/1600.jpg» 100%[=================================================================================>] 128 911 74,6K/s в 1,7s 2012-02-13 17:42:39 (74,6 KB/s) - «/tmp/1600.jpg» saved [128911/128911] ЗАВЕРШЕНО --2012-02-13 17:42:39-- Загружено: 1 файлов, 126K за 1,7s (74,6 KB/s) test@test-desktop:~$ получилось снова серый экран... и ручками в выборе обоев ткнул в картинку. поставилась но оно ж обновляться не будет. короче, пока нид хелп. |
MoRS 14 фев 2012 08:11 Изменен 14 фев 2012 18:17 Редактировать Ссылка на этот пост |
-Есть проблемы с обновлением (перерисовкой) экрана. Связано с тем что это виртуалка.
-Есть проблемы с сайтом die.net Они заипались от запросов и залочили (когда делали сайт не думали что ктото напишет этот риал тайм валпапер который на халяву будет с них снимать эту картинку всем сообществом) - иногда отдает когда нагрузка небольшая. - иногда грузицца иногда нет - ипет моск кеш браузера, кеш сквид (через который сидят все) Все четыре одновременно. |
Tёмный 05 апр 2012 19:27 Редактировать Ссылка на этот пост |
Да впринципе и похер на этот Real-time Sunlight Wallpaper, я ему uninstall сделал. Но тема с обновляющейся картинкой земли таки не дает мне покоя. Появилась пара идей как это сделать без приблуды Real-time Sunlight Wallpaper. Но мне нужна помощь, ибо я полный нуб в скриптах. MoRS, можешь сделать скриптик, который будет регулярно таскать оттуда картинку, и складывать её в заданную папку? Ну я так понимаю скриптик должен таскать и складывать, и его как-то в крон засунуть надо. Помоги, а? = ) |
Tёмный 06 апр 2012 12:01 Изменен 06 апр 2012 14:04 Редактировать Ссылка на этот пост |
Добрался до более-менее свободных клавиш, потестировал суть идеи. Получилось. готов показать. Сразу же предупреждаю, что я нуб, ламер, извращенец, и не ищу лёгких путей. В стандартной сборке гнома есть фон рабочего стола "Космос". Суть его такова: показывает несколько "космических снимков" меняя из через какой-то промежуток времени. И я подумал, а почему нет? Скачал очередной файлик с видом на Землю: http://static.die.net/earth/rectangular/1600.jpg > world.jpgtest@test-desktop:~$ wget -U "ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)" Далее зашел в папку /usr/share/backgrounds/cosmos/ и выкинул из неё все картинки. Вместо них поместил туда свой 1600.jpg. В файлике /usr/share/backgrounds/cosmos/background-1.xml выкинул всё, что посчитал лишним (может мало посчитал?) и поправил ссылочку на картинку 1600. Получилось вот так: Text <background><starttime> <year>2009</year> <month>08</month> <day>04</day> <hour>00</hour> <minute>00</minute> <second>00</second> </starttime> <!-- This animation will start at midnight. --> <static> <duration>895.0</duration> <file>/usr/share/backgrounds/cosmos/1600.jpg</file> </static> <transition> <duration>5.0</duration> <from>/usr/share/backgrounds/cosmos/1600.jpg</from> <to>/usr/share/backgrounds/cosmos/1600.jpg</to> </transition> </background> Ну а потом стандартными средствами поставил фон рабочего стола "Космос" Получил фон рабочего стола из картинки 1600. Чтобы понять, работает или не работает, открыл Gimp, и немножко поменял вид земли-матушки. Через некоторое время и на рабочем столе фон сменился. Работает! Ну вот теперь задача, надо чтобы компутер регулярно скачивал оттуда файлик со свежей картинкой и выкладывал её в /usr/share/backgrounds/cosmos/1600.jpg заменяя лежащий там файлик. Ну или научите меня как сделать по другому = ) Кстати, у предложенного варианта появилась дополнительная опция. При таком раскладе эту штуку можно будет использовать не только как фон рабочего стола, но и как скринсэйвер! |
MoRS 06 апр 2012 13:30 Изменен 06 апр 2012 16:44 Редактировать Ссылка на этот пост |
Круто ты озадачился=)
Предлагаю так: Создаем папку в домашнем каталоге, где будет жить наше барахло(скрипт и картинка): mkdir $HOME/mybackground Создаем пустой файл, это будет скрипт: echo > $HOME/mybackground/getimage Делаем его исполняемым: chmod 755 $HOME/mybackground/getimage Туда пишем: Text #!/bin/shFROM=http://static.die.net/earth/rectangular/1600.jpg TO=/home/mors/mybackground/1600.jpg wget -U "ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)" $FROM -r -O $TO exit 0 Проверяем как работает: $HOME/mybackground/getimage Должно скачацца файло 1600.jpg Делаем на него ярлык в /usr/share/backgrounds/cosmos/ (старый файл оттуда убрать сначала) sudo ln -s $HOME/mybackground/1600.jpg /usr/share/backgrounds/cosmos/ Чтобы скрипт запускался каждый час, его нужно просто положить в папку /etc/cron.hourly Но лучше положить туда ярлык на него. sudo ln -s $HOME/mybackground/getimage /etc/cron.hourly С ярлыками удобнее, все лежит в одном месте в домашнем каталоге и можно их править без рутовых прав. Должно работать |
Tёмный 06 апр 2012 13:48 Редактировать Ссылка на этот пост |
MoRS, клёва! Спасибо огромное!
А если я хочу чтоб он тягал картинку чаще чем раз в час, мне в какой крон надо ярлык закинуть? |
MoRS 06 апр 2012 14:50 Изменен 06 апр 2012 15:12 Редактировать Ссылка на этот пост |
Тогда делаем более грамотно=)
Создаем файл с расписанием для cron echo > $HOME/mybackground/mycrontab Туда пишем: Text SHELL=/bin/bashMAILTO=user 0,20,40 * * * * /home/mors/mybackground/getimage *mors меняем на своего юзера Скармливаем его крону crontab $HOME/mybackground/mycrontab Должно работать) зы: в /etc/cron.hourly тогда ничево не нада |
Tёмный 06 апр 2012 16:26 Редактировать Ссылка на этот пост |
... что-то я тут подумал немножко. Вот так делать НЕПРАВИЛЬНО Далее зашел в папку Ведь если мы поправим файлик /usr/share/backgrounds/cosmos/background-1.xml, то существовавшие в папке картинки нам уже не помешают. Идеологически вернее будет поступить так: забэкапить существующий файлик sudo cp /usr/share/backgrounds/cosmos/background-1.xml /usr/share/backgrounds/cosmos/background-1.xml.bak далее выкинуть из него всё лишнее, поправить ссылку на 1600, выставить нужный период обновления. и закинуть ярлык от 1600 в эту папку, как подсказывал MoRS |
Новое сообщение
Наверх>Страницы 1