Ru-Board.club
← Вернуться в раздел «UNIX»

» Помогите с написанием скрипта

Автор: whitecherep
Дата сообщения: 23.10.2010 18:10
Скрипт будет находиться на флешке в корне и автоматически запускаться при ее монтировании, выполняя следующие:

1. На флешке в корне находиться папка 'Test', скрипт создает в ней подпапку, название которой серийный номер винчестера
2. Копирует нужные файлы/папку (например с /home/user/program/folder) с винчестера в эту созданную папку
3. Далее переименовывает папку /home/user/program/folder в folder_data, где data - дата когда было последние копирование на флешку, например 'fodler_23-10-2010'

Флешка будет монтироваться на нескольких компьютерах и скрипт должен копировать нужные файлы в соответствующие подпапки (с серийными номерами винчестеров) на флешке.

В написание скриптов полностью новичок, если можно, пожалуйста подробнее, по ходу дела буду учиться.
Дело в том что скрипт нужен чем скорее тем лучше (в течении нескольких дней), и перечитывать все нюансы написания bash скриптов или научиться этому с нуля за короткое время, сами понимаете, не реально. Заранее благодарен за вашу помощь.
Автор: bomzzz
Дата сообщения: 23.10.2010 18:16
http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=1491&start=1820#lt
http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=21297&start=1120#lt

писать целиком за тебя врядли кто то будет
Автор: whitecherep
Дата сообщения: 23.10.2010 18:52
Скрипт нужен для Linux систем, к примеру autorun.sh, а не батник.
Я не прошу писать целиком, каждый может подсказать то, что знает. Меня главным образом интересует 1-й пункт, как можно вытянуть серийник винта чтобы создать папку.

Добавлено:
Нашел как вывести инфу о винчестере и сохраняю в текстовый файл:

hdparm -i /dev/sda -> temp.txt

в файле следующая информация:

....
Model=ST3500418AS, FwRev=CC35, SerialNo=6VM3BARM
....

какими командами в скрипте можно вытянуть серийник после SerialNo= с текстового файла и создать подпапку (в даном случае 6VM3BARM) ?
Автор: urodliv
Дата сообщения: 23.10.2010 21:00
mkdir `hdparm -i /dev/sda | head -n 4 | tail -n 1 | cut -d= -f 4`
Но это решение кривоногое: зависит от платформы.
Автор: whitecherep
Дата сообщения: 23.10.2010 21:29

Цитата:
Но это решение кривоногое: зависит от платформы.


Работает, спсибо, а то уже сидел искал как из файла вытянуть текст )
Почему кривоногое, можно подробнее нюансы? На всех машинах стоит дебиан, все винты SATA, в самом начале скрипта устанавливаю саму hdparm из пакета, который кидаю на флешку.

Автор: SysCommander
Дата сообщения: 23.10.2010 23:22

Цитата:
В написание скриптов полностью новичок


Цитата:
перечитывать все нюансы написания bash скриптов


Что перечитывать если полностью новичок?

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


Цитата:
скрипт нужен чем скорее тем лучше


Это вообще смешно.
Автор: whitecherep
Дата сообщения: 24.10.2010 16:52
SysCommander, да не парься, если нечего написать по теме, то лучше вообще ничего не пиши.
Написал, что скрипт нужен в короткие сроки, так как новичок в этом и не знаю с помощью каких команд можно то или иное сделать (не считая самых простых команд), то нету возможности полностью перечитывать всю документацию по bash чтобы найти соответствующие команды.
urodliv помог вытянуть серийник и создать папку, в команде и ключах разобрался, на будущее теперь буду знать. Все остальные пункты попытался написать сам.
Автор: urodliv
Дата сообщения: 24.10.2010 23:37

Цитата:
3. Далее переименовывает папку /home/user/program/folder в folder_data, где data - дата когда было последние копирование на флешку, например 'fodler_23-10-2010'

Чёрт, только сейчас обратил внимание, что там у вас несколько задач.
Вопрос такой, а как вы узнаёте дату последнего копирования?
Автор: Aluminium
Дата сообщения: 29.10.2010 16:33
если под датой последнего копирования имеется в виду текущее втыкание флешки в комп, то скрипт будет выглядеть так:

Код: #!/bin/sh

serial=`hdparm -i /dev/sda | awk -F= '{if($1 ~ /Model/) print $4}'`
now_date=`date +%F`

mkdir ./Test/$serial
cp /home/user/program/folder ./Test/$serial/$now_date
Автор: ASE_DAG
Дата сообщения: 29.10.2010 21:31

Цитата:
hdparm -i /dev/sda


Незадача в том, что абы кто (all, то бишь) обычно не имеет прав на чтение /dev/sd*, что вполне логично. hdparm не от пользователя группы root disk не сработает.
Автор: Gavigor
Дата сообщения: 08.11.2012 21:55
есть xml:
<?xml version="1.0" encoding="utf-8"?>
<provider url="https://stat.internet67.ru/">
<request type="GET" url="${provider.url}" required="true" onError="exception.unavailable" charset="UTF-8">
<request type="POST" url="${provider.url}" required="true" onError="exception.unavailable">
<param name="login" value="${account.login}"/>
<param name="password" value="${account.password}"/>
<param name="cmd" value="login"/>

<search start="utm-table-caption" end="&lt;/table" required="true" onError="exception.login">
<table><foreach>
<search value="${result.1}" regex="Баланс">
<balance value="${result.2}" units="р"/>
</search>
<search value="${result.1}" regex="Кредит">
<balance value="${result.2}" units="р"/>
</search>
</foreach></table>
</search>
</request>
</request>
</provider>

===============================

вот ее html:

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<TITLE>
UTM:
Вход в UTM</TITLE>
<LINK rel="stylesheet" type="text/css" href="/utm.css">
<SCRIPT language="JavaScript" type="text/javascript" src="/utm.js"></SCRIPT>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000" link="#003BA9" vlink="#E7651A" marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"><TABLE width="100%" height="100%" cellspacing="0" cellpadding="0" border="0"><TR>
<TD width="20%" class="menu-area">
<DIV class="mainmenu-act">Вход в UTM</DIV>
<DIV class="mainmenu-inact"><A href="/cgi-bin/forusers/credit.pl" target="_top">Включить интернет в кредит</A></DIV>
<DIV class="mainmenu-inact"><A href="/cgi-bin/forusers/extip.pl" target="_top">Заказ внешнего IP</A></DIV>
<DIV class="mainmenu-inact"><A href="/cgi-bin/forusers/chtar.pl" target="_top">Сменить тарифный план</A></DIV>
<DIV class="mainmenu-inact"><A href="/cgi-bin/forusers/diag.pl" target="_top">Проверка настроек</A></DIV>
<DIV class="mainmenu-inact"><A href="/cgi-bin/forusers/telsms.pl" target="_top">Способы связи с абонентом</A></DIV>
<DIV class="mainmenu-inact"><br></DIV>
<DIV class="mainmenu-inact"><A href="/soft/setup_UTM_int67.exe" target="_top">Скачать UTM_Wintray</A></DIV>
<DIV class="mainmenu-inact"><A href="/soft/setup_int67.exe" target="_top">Скачать Wintray И67 (новая сборка)</A></DIV>
<DIV class="mainmenu-inact"><A href="/soft/setup_fly_int67.exe" target="_top">Программа обмена файлами (FlylinkDC)</A></DIV>
<DIV class="mainmenu-inact"><A href="/soft/setup_StrongDC_int67.exe" target="_top">Программа обмена файлами (StrongDC)</A></DIV>
<DIV class="mainmenu-inact"><A href="/soft/commfort_client_500d.exe" target="_top">Внутрисетевой ЧАТ commfort v5</A></DIV>
<DIV class="mainmenu-inact"><A href="/soft/IpTvPlayer-setup.exe" target="_top">IpTvPlayer-setup</A></DIV>



</TD>
<TD width="80%" class="work-area">
<TABLE width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#E0EED3"><TR><TD class="submenu-area"></TD></TR></TABLE>
<BR>Вход в UTM<FORM name="login" accept-charset="UTF-8" action="/cgi-bin/utm5/aaa5" target="" method="post"><DIV class="form-tab"><TABLE cellspacing="5" cellpadding="3" border="0">
<TR>
<TD class="form-field" align="right">Логин</TD>
<TD class="form-field" align="left"><INPUT type="text" class="form-field" size="40" name="login" value=""></TD>
</TR>
<TR>
<TD class="form-field" align="right">Пароль</TD>
<TD class="form-field" align="left"><INPUT type="password" class="form-field" size="40" name="password" value=""></TD>
</TR>
<INPUT type="hidden" name="cmd" value="login"><TR>
<TD></TD>
<TD><INPUT type="submit" class="form-button" value="OK"></TD>
</TR>

</TABLE></DIV></FORM>
</TD>


</TR></TABLE></BODY>
</HTML>
================================

в итоге имею ошибка авторизации. что я не так делаю?
Автор: Alukardd
Дата сообщения: 08.11.2012 22:25
Gavigor
А как это связано с UNIX или со скриптами???
Это типичное web-программирование.
Если будут вопросы по UNIX shell'у и т.п. sed, awk, perl, то есть действующая тема.

Страницы: 1

Предыдущая тема: openbsd


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.