автоматизация ввода команды

Изображение пользователя alsha.

Уважаемые! Есть написанная команды в терминале для обновления DLNA сервера. Исполняется прекрасно, но хотелось бы исполнять ее без написания каждый раз. Нажать на значек (иконку) или или еще каким макаром. Желательно под рутом (что бы не вводить пароль). Чего то я не догоняю , не найду в инете :(. Спасибо.

+2
Fierta - 2 Май, 2015 - 15:32
Изображение пользователя Fierta.

Создать скрипт
#!/bin/sh
kdesudo команда

Создать ярлык для скрипта

[Desktop Entry]
Categories=Qt;KDE;Settings;
Comment[ru]=
Comment=
Exec=bash /путь к скрипту/скрипт.sh
GenericName[ru]=
GenericName=
Icon=configure-debian
MimeType=
Name[ru]=DLNA
Name=DLNA
OnlyShowIn=KDE;
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-StartupNotify=true
X-KDE-SubstituteUID=false
X-KDE-Username=

0
alsha - 2 Май, 2015 - 19:07
Изображение пользователя alsha.

танцы с бубном ! Все работает, только там 4 команды вписаны и в терминале требовался 1 раз ввести пароль, а через скрипт 4 раза пароль запрашивает. Решаемо?

+1
Fierta - 2 Май, 2015 - 19:10
Изображение пользователя Fierta.

В линуксе всё решаемо, была бы голова и желание. Вы хотя бы команду покажите, а то не известно в каком месте и для чего 4 раза спрашивает пароль.

0
Fierta - 2 Май, 2015 - 19:12
Изображение пользователя Fierta.

кстати, если 4 команды друг за другом следуют, то используйте такой формат: команда && команда && и т.д.

0
alsha - 2 Май, 2015 - 19:35
Изображение пользователя alsha.

Я так писал через &&.
#!/bin/sh
kdesudo service minidlna stop && kdesudo rm -rf /var/cache/minidlna/* && kdesudo minidlnad && kdesudo service minidlna restart

4 раза запрос пароля идет

-1
Fierta - 2 Май, 2015 - 19:46
Изображение пользователя Fierta.

зачем 4 раза kdesudo.
#!/bin/sh
kdesudo service minidlna stop &&  rm -rf /var/cache/minidlna/* && minidlnad && service minidlna restart

0
alsha - 2 Май, 2015 - 20:02
Изображение пользователя alsha.

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

+1
Fierta - 2 Май, 2015 - 20:35
Изображение пользователя Fierta.

ну тогда так попробуйте:

ярлык

[Desktop Entry]
Comment[ru]=
Comment=
Exec=konsole -e  ~/minidlna

скрипт

#!/bin/sh
[ $USER != 'root' ] && exec sudo "$0"

service minidlna stop && rm -rf /var/cache/minidlna/*  && minidlnad && service minidlna restart

0
alsha - 2 Май, 2015 - 20:47
Изображение пользователя alsha.

молчит совсем. ни каких телодвижений :(

0
alsha - 2 Май, 2015 - 20:49
Изображение пользователя alsha.

придется дальше терминалом гонять

+1
Fierta - 2 Май, 2015 - 20:58
Изображение пользователя Fierta.

как это молчит? себе поставил ради интереса. всё отлично работает.
привожу полный ман.
создайте текстовый файл с именем (DLNA) и расширением desktop и таким содержанием:
[Desktop Entry]
Comment[ru]=
Comment=
Exec=konsole  -e  ~/minidlna (здесь путь где лежит скрипт, у меня в хомяке, отсюда и вот это ~/ )
GenericName[ru]=
GenericName=
Icon=любой значек из набора системных значков, к примеру settings
MimeType=
Name[ru]=
Name=
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

затем создаем скрипт, такого содержания:
#!/bin/sh
[ $USER != 'root' ] && exec sudo "$0"

service minidlna stop && rm -rf /var/cache/minidlna/*  && minidlnad && service minidlna restart

запускается консолька с приглашением ввести пароль, после ввода, команды отрабатываются и консоль сама закрывается.

0
alsha - 2 Май, 2015 - 21:02
Изображение пользователя alsha.

странно. буду шаманить

0
alsha - 2 Май, 2015 - 21:46
Изображение пользователя alsha.

Да срабатывает!!! Спасибо, уже легче. Ошибка в написании была :(

+3
Tonal - 14 Май, 2015 - 13:12
Изображение пользователя Tonal.

Тут нужно немного не так:
#!/bin/bash
kdesudo /bin/bash -c 'service minidlna stop && rm -rf /var/cache/minidlna/* && minidlnad && service minidlna start'

0
alsha - 25 Май, 2015 - 12:03
Изображение пользователя alsha.

и так срабатывает, ка и в предыдущей версии. Спасибо

+2
AlexBKost - 2 Май, 2015 - 15:29

Терминал ведет свою историю, поэтому ничего заново набирать не надо, просто введенные ранее команды перебираются стрелками на клавиатуре. А пароль по-любому вводить приходится каждый раз.

+1
dyug - 2 Май, 2015 - 15:33

гмм, а зачем, если можно настроить sudo для принятия этой команды без пароля?
причем даже с иконкой. :-)

0
AlexBKost - 2 Май, 2015 - 15:38

чтобы ничего не настраивать специально, а по рабоче-крестьянски. по праздничному как сейчас (шутка).

0
BOSS_SAS - 2 Май, 2015 - 17:45

еще можно забиндить на клавишу. что отчасти даже проще чем создавать скрипт(в случае одной строки команды), делать на него иконку и кидать на рабстол

я например сделал отдельную громкость на наушники, командами "pactl set-sink-volume +2000" и тп

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры