Автор Тема: Скрипты. Общие вопросы по использованию и написанию.  (Прочитано 28909 раз)

Оффлайн Belua

  • Участник
  • *
  • Сообщений: 102
Re: выполнение скрипта из KDE
« Ответ #30 : 16.12.2008 07:19:27 »
Да это почти то что нужно. Нашел еще вариант "konsole -e command". Но что делать если у меня скрипт скажем более чем из 2-х строк. Понятно, что запустить консоль и выполнить его, руки не отвалятся, но всё таки?

__________________

закройте, написал выше и сразу понял.
« Последнее редактирование: 16.12.2008 07:53:33 от belua »
Вот случилось где-то что-то Ой-ой-ой-ой-ой! Кто-то с кем-то сделал что-то, ай-яй-яй-яй-яй!

Оффлайн xapienz

  • Участник
  • *
  • Сообщений: 207
Re: выполнение скрипта из KDE
« Ответ #31 : 16.12.2008 10:31:53 »
сохранить в .sh и сделать konsole -e .../abc.sh
ALTLinux Sisyphus

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
Проблема со скриптом для ipcad
« Ответ #32 : 15.01.2009 12:42:31 »
Сделал скрипт для ежедневного сохранения и обнуления статистики ipcad (ip accounting):
#!/bin/sh
DATA=`date +%F`
rsh localhost show ip accounting > /home/kirill/logs/ipcad/$DATA.txt
gzip /home/kirill/logs/ipcad/$DATA.txt
rsh localhost clear ip accounting &> /home/kirill/logs/ipcad/clear.txt
Если выполнить этот скрипт вручную, то все делается. Но при выполнении скрипта из cron в файл clear.txt записывает ошибку "localhost: Cannot assign requested address" и статистику не обнуляет.
Если разбиваю скрипт на два:
#!/bin/sh
DATA=`date +%F`
rsh localhost show ip accounting > /home/kirill/logs/ipcad/$DATA.txt
gzip /home/kirill/logs/ipcad/$DATA.txt
и
#!/bin/sh
rsh localhost clear ip accounting &> /home/kirill/logs/ipcad/clear.txt
с разницей в выполнении по cron в 1 минуту, то все работает.
В чем дело? Наверное, надо сделать какую-нибудь паузу между командой сохранения статистики и ее обнулением.

Оффлайн xoxa

  • Участник
  • *
  • Сообщений: 159
Пробую бэкапить всячину...
Достаточно мой скрипт положить в /etc/cron.weekly просто, чтобы он каждyю неделю сам запускался?

я там создал внутри файлик backup.sh, в котором написано:

#!/bin/bash
cd /mnt/share/backup
tar -cjf backup.tar.bz2 /etc /mnt/share/common /boot

Да, так вот незатейливо)))
Осталось вспомнить как написать, чтобы он архив создавал, называя его датой создания... Не могу Тэйнсли найти в формате отличном от djvu =(
« Последнее редактирование: 19.01.2009 12:25:49 от xoxa »
c:\>dmesg
"dmesg" не является внутренней или внешней командой c:\>man dmesg "man" не является внутренней или внешней командой c:\>su - "su" не является внутренней или внешней командой c:\> format c:

lad

  • Гость
....сделав его исполняемым

дату в переменную можно так вставить
FILENAMESES `date '+ %d.%m.%Y - %H:%M:%S'`

а потом использовать пременню в команде
echo ********* > /tmp/$FILENAMESES

Оффлайн xoxa

  • Участник
  • *
  • Сообщений: 159
....сделав его исполняемым

дату в переменную можно так вставить
FILENAMESES `date '+ %d.%m.%Y - %H:%M:%S'`

а потом использовать пременню в команде
echo ********* > /tmp/$FILENAMESES
Да пусть каждый день с новым именем в папке DAYLY создает файлики, я их потом отдельным скриптом через find mtime 7 поубиваю. =)
Только вот не вспомнить и никак не найти каким образом изменить атрибуты файла время обращения. Ну чтобы проверить как скрипт удаления отработает =(
А еще хотелось бы добавить строчку MAILTO = root@localhost в кронтаб добавить, чтобы отчет был по выполнении задания =) Но чета не шлётся ничего руту =( Поправил вот так /etc/crontab
MAILTO = uspehсобакаsrv.gamma
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Выполняется скрипт из дэйли, а письмо не приходит =\ Хотя через mutt я ему отправил нормально. Не туда строчку вписал? =)
« Последнее редактирование: 19.01.2009 14:02:18 от xoxa »
c:\>dmesg
"dmesg" не является внутренней или внешней командой c:\>man dmesg "man" не является внутренней или внешней командой c:\>su - "su" не является внутренней или внешней командой c:\> format c:

lad

  • Гость
Цитировать
каким образом изменить атрибуты файла время обращения
не совсем но возможно оно
man touch 

и не нужно imho самому скрипт удаления городить
я стандартный редактирую
/etc/cron.daily/tmpwatch

Цитировать
Но чета не шлётся ничего руту
вроде почта рута шлётся первому созданному пользователю при инсталляции, как вариант не поддерживается полное имя (с собачатиной) попробуй просто имя юзверя.
« Последнее редактирование: 01.02.2009 16:03:00 от lad »

Оффлайн sword

  • Участник
  • *
  • Сообщений: 5
Столкнулся с непонятным поведением команды route. Предположим есть команда:
/sbin/route add 192.168.100.123 dev dvb0_0

Если я набиваю ее вручную в терминале, то после выполнения route -n показывает правильный результат. Создаю скрипт с этой же самой строкой, выполняю, а результата 0. Провел небольшой эксперимент. Записал в скрипт:
/sbin/route add 192.168.100.123 dev dvb0_0
route -n
Выполнение показало верный результат, но повторное, уже вручную введенная команда route -n опять выдала 0. Все команды и скрипт делались, естественно, под рутом.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
А зачем вы пытаетесь это поместить в скрипт? Вообще-то etcnet позволяет не использовать скрипты для настройки route.

Оффлайн sword

  • Участник
  • *
  • Сообщений: 5
То есть получается, что в своем скрипте команду route использовать не удастся?
Второй вопрос, установленное соединение с помощью kppp (gprs) не добавляет шлюз по умолчанию. Галочку в соответствующем месте настройки программы поставил. Вывод команды route -n дает следующий результат (пишу по памяти):
ppp0 192.168.100.120     0.0.0.0
ppp0 0.0.0.0   0.0.0.0

Насколько я понимаю, должно быть следующее:
ppp0 192.168.100.120     0.0.0.0
ppp0 0.0.0.0                 192.168.100.120   

Попробовал запустить kppp из терминала, во время подключения была строка, что ppp0 не найден, но соединение проходит, да и route фиксирует наличие запущенного ppp0.

Оффлайн alehander

  • Участник
  • *
  • Сообщений: 321
Вывод сообщений скрипта в лог файл
« Ответ #40 : 08.04.2009 11:58:20 »
я копирую файлы командой ср, который записан в скрипте
В дальнейшем туда добавится архивация итд
Вопрос
$ ls >1.txt
таким образом мы перенаправили в файл то что мы увидели, а как скопировать то что сделал скрипт при выполнении команды ср при копировании файлов?
ЗЫ запустил скрипт из под рута но он текстовый файл пуст поэтому и спрашиваю
Может в альте есть какие ниб особенности о которых новичок не знает да и в ЧАВО потом занести можно типа "Тут скрипт батника для резервного копирования данных"
« Последнее редактирование: 08.04.2009 12:01:16 от alehander »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 168
    • Домашняя страница
а как скопировать то что сделал скрипт при выполнении команды ср при копировании файлов?
#!/bin.sh

cp -v /var/log/maillog /var/archive >/var/log/cp.log 2>&1
добавление в конце >куда 2>&1 (именно в такой последовательности!) указывает сохранять как обычный вывод, так и вывод ошибок в указанный файл.
Андрей Черепанов (cas@)

Оффлайн Eric

  • Участник
  • *
  • Сообщений: 137
скажите чего не хватает! [решено]
« Ответ #43 : 20.04.2009 15:08:46 »
пытаюсь поставить скрипт clipshare (видео обменник типа ютуба)

пытаюсь зайти на главную страницу и выдает такое
Цитировать
[code]Connect($DBHOST, $DBUSER, $DBPASSWORD, $DBNAME) ) { echo 'Could not connect to mysql! Please check your database settings!'; die(); } $conn->execute("SET NAMES 'utf8'"); $sql = "SELECT * from sconfig"; $rsc = $conn->Execute($sql); if ( $rsc ) { while(!$rsc->EOF) { $field = $rsc->fields['soption']; $config[$field] = $rsc->fields['svalue']; STemplate::assign($field, $config[$field]); @$rsc->MoveNext(); } } if ( $config['gzip_encoding'] == 1 ) { ob_start(); ob_implicit_flush(0); } if ( extension_loaded('mbstring') ) { ini_set('mbstring.internal_encoding', 'UTF-8'); ini_set('mbstring.http_input', 'UTF-8'); ini_set('mbstring.http_output', 'UTF-8'); } ini_set('session.name', 'CLIPSHARE'); ini_set('session.save_handler', 'files'); ini_set('session.use_cookies', 1); ini_set('session.use_only_cookies', 0); ini_set('session.save_path', $config['BASE_DIR']. '/tmp/sessions'); ini_set('session.gc_maxlifetime', intval($config['session_lifetime'])); //session_set_cookie_params( 0, '/', '.domain.com'); session_start(); disableRegisterGlobals(); $filterObj = new InputFilter(NULL, NULL, 0, 0, 1); $err = ( isset($_GET['err']) ) ? $filterObj->process(trim($_GET['err'])) : NULL; $msg = ( isset($_GET['msg']) ) ? $filterObj->process(trim($_GET['msg'])) : NULL; if ( isset($_SESSION['verification_sent']) ) { $msg = $filterObj->process($_SESSION['verification_sent']); unset($_SESSION['verification_sent']); } require $config['BASE_DIR']. '/include/language.php'; if ( !isset($_SESSION['language']) ) { $_SESSION['language'] = $config['language']; } if ( isset($_POST['session_language']) && strlen($_POST['session_language']) == 5 ) { $language = trim($_POST['session_language']); $language_dir = $config['BASE_DIR']. '/language/' .$language; if ( file_exists($language_dir) && is_dir($language_dir) ) { $_SESSION['language'] = trim($_POST['session_language']); } } include $config['BASE_DIR']. '/language/' .$_SESSION['language']. '/global.lang.php'; include $config['BASE_DIR']. '/language/' .$_SESSION['language']. '/menu.lang.php'; if ( isset($_SESSION['UID']) && is_numeric($_SESSION['UID']) ) { $user_ip = ( isset($_SERVER['REMOTE_ADDR']) && strlen($_SERVER['REMOTE_ADDR']) <= 16 ) ? $_SERVER['REMOTE_ADDR'] : NULL; $sql = "UPDATE signup SET user_ip = '" .$user_ip. "' WHERE UID = '" .mysql_real_escape_string($_SESSION['UID']). "' LIMIT 1"; $conn->execute($sql); } $remote_ip = ( isset($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : NULL; if ( $remote_ip ) { $sql = "SELECT ban_id FROM bans WHERE ban_ip = '" .$remote_ip. "' LIMIT 1"; $conn->execute($sql); if ( mysql_affected_rows() > 0 ) { $msg = 'You are banned from this site!'; session_write_close(); header('Location: ' .$config['BASE_URL']. '?msg=' .$msg); die(); } } STemplate::setCompileDir($config['BASE_DIR']."/cache/templates_c"); STemplate::setTplDir($config['BASE_DIR']."/templates"); STemplate::assign('bgcolor', '#E8E8E8'); STemplate::assign('BASE_URL', $config['BASE_URL']); STemplate::assign('BASE_DIR', $config['BASE_DIR']); STemplate::assign('IMG_URL', $config['IMG_URL']); STemplate::assign('baseurl', $config['BASE_URL']); STemplate::assign('basedir', $config['BASE_DIR']); STemplate::assign('imgurl', $config['IMG_URL']); STemplate::assign('vdourl', $config['VDO_URL']); STemplate::assign('adourl', $config['ADO_URL']); STemplate::assign('flvdourl', $config['FLVDO_URL']); STemplate::assign('tmburl', $config['TMB_URL']); STemplate::assign('photourl', $config['PHO_URL']); STemplate::assign('captcha', $config['captcha']); STemplate::assign('downloads', $config['downloads']); STemplate::assign('site_name', $config['site_name']); ?>
такое ощущение как будто не работает PHP или чего то не хватает для него!!
/var/log..... ошибка
Цитировать
[Mon Apr 20 15:08:08 2009] [error] [client 10.0.7.77] PHP Notice:  Undefined variable: _SESSION in /var/www/html/index.php on line 17
[Mon Apr 20 15:08:08 2009] [error] [client 10.0.7.77] PHP Warning:  require(language//index.lang.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 17
[Mon Apr 20 15:08:08 2009] [error] [client 10.0.7.77] PHP Fatal error:  require(): Failed opening required 'language//index.lang.php' (include_path='./:/usr/lib64/php/:/usr/lib64/php/5.2.7/:/usr/share/php/pear/:/usr/share/php/modules/:/usr/share/php/5.2.7/modules/') in /var/www/html/index.php on line 17
« Последнее редактирование: 29.10.2011 17:52:21 от МИНЗДРАВ »

Оффлайн KPETuH

  • Участник
  • *
  • Сообщений: 1 162
    • SG
Re: скажите чего не хватает!
« Ответ #44 : 20.04.2009 15:11:47 »
а вот у меня ощущение что скрипт кривой
Мой небосклон и чист, и ясен,
И полон радужных картин...  Не потому что мир прекрасен,  А потому, что я - KPETuH