Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

Открыть новую тему     Написать ответ в эту тему

digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи вопрошающие! Если ваша система отлична от ГНУ, и в то же время вы желаете обойтись только дефолтными средствами, указывайте и то и другое сразу, пожалуйста.


UNIX Shell

 
   Это глобальная тема по юниксовой командной оболочке, как по интерактивной работе в командной строке, так и по шелл-скриптам. Ключевые слова: sh, bash, zsh, tcsh, busybox, readline, coreutils, cp, mv, ln, rm, ls, readlink, mkdir, touch, stat, date, test, sleep, chown, chmod, chattr, dd, df, du, env, echo, cat, less, man, grep, sort, findutils, find, locate, xargs, md5sum, cmp, diff, patch, ps, kill, killall, tar, gzip, bzip2, xz, mount, fdisk, parted, mkfs, fsck, e2fsprogs, mtools, ss, netcat, netstat, rsync, ssh, scp, sftp, lftp, ncftp, time, strace.
   Неинтерактивная обработка текста (sed, awk, perl) пока тоже здесь.
   Смотри в других ветках: wget, convert, montage, mogrify и др., gs, git, 7z, p7zip, soffice, mplayer, mencoder, vlc, vim, mc, mcedit, kioclient.
 
 

Hint! Русские маны (подустаревшие, не всегда полные и не всегда для вашей системы) можно попытаться найти на Опеннете, к примеру: bash, tar, grep.

 
Готовые решения:
  • commandlinefu.com
    Крупнейшая база полезных однострочников на командной оболочке с ранжированием на основе пользовательского голосования.
     
  • shell-fu.org
    Аналогично, но поменьше и формат записей более свободный, поэтому встречаются и однострочники, и развернутые скрипты, и просто советы.
     
  • Useful one-line scripts for sed
    Почти исчерпывающий список решений для тех случаев, когда sed незаменим. Более сложные скрипты с sed.sf.net — только для тех, кто знает толк... :)

 
Учебная литература:
  • Greg’s Wiki (http://mywiki.wooledge.org)
    Наиболее обширный авторский сборник постоянно обновляющихся материалов по Башу.

    1. Bash Pitfalls
      (Частые ошибки программирования на Баше: [1], [2], [3], [4], [5] — пер. на русский по сост. на дек. 2008 г.).
      Рассмотрены преимущественно ошибки, возникающие из-за непонимания отличия шелла от «нормальных» скриптовых языков. Если вы уже владеете, например, Перлом, то это вполне может быть ваше первое руководство для ознакомления с Башем.
    2. Bash FAQ
    3. Bash Guide
    4. Bash Reference Sheet
      Шпаргалка по частым синтаксическим оборотам.

 
Классическая учебная литература:
С одной стороны не упомянуть эти издания нельзя, с другой — они настолько устарели, что едва ли их можно рекомендовать в роли учебника.

 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.
Первый пост темы имел вид...

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: ASE_DAG, 22:02 01-03-2017
vlader2004



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мы в Юниксе, дружище. Найди другое средство для зеркалирования информации и не парься.
 

Всего записей: 460 | Зарегистр. 31-05-2004 | Отправлено: 14:26 17-05-2008 | Исправлено: vlader2004, 14:27 17-05-2008
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Рад выслушать любые предложения, а насчет UNIXа не понял, ветка вроде бы и про Linux тоже. Вопрос не в средстве зеркалировании, а в последующей его чистке.

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 18:44 17-05-2008 | Исправлено: digital422, 18:45 17-05-2008
NightSpamer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422, А если сначала создать (чем-то вроде mkdir -p `find $SOURCE_DIR -name '*.OLD*' -exec echo $TARGET_DIR{} \; | grep -o ".*\/" | sort | uniq`) папки, и вторым проходом уже перемещать файлы?
Криво, как-то, но может и заработать. Других идей пока всё равно нет...

Всего записей: 291 | Зарегистр. 28-11-2006 | Отправлено: 08:33 19-05-2008
realbrother

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ОНЛАЙН КИНОТЕАТР - ВЫСОЧАЙШЕЕ КАЧЕСТВО ПРОСМОТРА В ИНТЕРНЕТЕ! ВСЕ НОВИНКИ, АРХИВ ФИЛЬМОВ ОБНОВЛЯЕТСЯ ЕЖЕДНЕВНО! ВСЕГО ДОБРОГО!
 
www.спам.ru

Всего записей: 1 | Зарегистр. 19-05-2008 | Отправлено: 21:52 19-05-2008 | Исправлено: ShriEkeR, 14:47 25-12-2009
amorua

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
if [ -e `dirname $NEWPATH/$FILE` ]; then
 mv $FILE  $NEWPATH/$FILE
else  
 mkdir `dirname $NEWPATH/$FILE`
 mv $FILE  $NEWPATH/$FILE
fi

Всего записей: 428 | Зарегистр. 09-02-2004 | Отправлено: 23:20 20-05-2008 | Исправлено: amorua, 23:21 20-05-2008
NightSpamer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
amorua
mkdir /a/b/c/d не создаёт /a/b/c/d если есть только /a/b/. Нужно mkdir -p

Всего записей: 291 | Зарегистр. 28-11-2006 | Отправлено: 11:31 21-05-2008
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, попробую!
Нужна помощь еще в одном скрипте, его задача - проверять 2 папки, IN и OUT.
Проверять папку OUT и если там есть файлы как в IN, то не копировать их. Если в IN папке файл появился, то копировать в папку OUT (если еще сделать проверку по контрольным суммам, будет здорово).
Вот мой вариант, но в нем неправильно сделана проверка папок, поэтому копирование не идет:
 
#!/bin/sh
PATH_IN="/backup/IN/"
PATH_OUT="/backup/OUT"
FIND_IN=`find $PATH_IN -iname *.doc -type f`
 
for i in $FIND_IN
do
echo $i
if [test -s "$i"]; then
else
cp $PATH_IN*.* $PATH_OUT
fi
done

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 09:26 04-08-2008 | Исправлено: digital422, 11:53 04-08-2008
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по-моему в cp есть опция - не перезаписывать существующие файлы, ну или файлы с более поздней датой

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 13:30 04-08-2008
SysCommander

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Проверять папку OUT и если там есть файлы как в IN, то не копировать их.

 
посмотри в сторону rsync, тем более что обе директории локальные.

Всего записей: 414 | Зарегистр. 20-07-2007 | Отправлено: 20:24 04-08-2008
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хм, не знал что так просто, cp -u.

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 11:25 05-08-2008
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Снова возникла задача для скрипта. Есть какие-то проблемы с железом, в логах появляется сообщение  
NETDEV WATCHDOG: eth0: transmit timed out, железо поменяется, но неизвестно когда.
Нужен скрипт, в котором при появлении сообщения:
tail -f /var/log/syslog |grep "NETDEV WATCHDOG"
выполнялась комманда reboot. Поможете?

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 13:45 16-08-2008
SysCommander

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
железо поменяется, но неизвестно когда

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

Цитата:
выполнялась комманда reboot

 
А просто вариация на тему
 
ifconfig eth0 down; ifconfig eth0 up
 
или rmmod+modprobe модуля для сетевушки не помогает?
 
 

Всего записей: 414 | Зарегистр. 20-07-2007 | Отправлено: 15:17 16-08-2008
albel



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
digital422
ну можно примерно так через временный файл:

Код:
 
#!/bin/bash
##
 
# если временный файл существует, удаляем его
if [ -e tmpfile ]; then  
    rm tmpfile
fi
# создаём временный файл нулевого размера
touch tmpfile
 
# пока размер остаётся нулевым, перечитываем файл syslog
while [ ! -s tmpfile ]; do
    tail /var/log/syslog | grep "NETDEV WATCHDOG" > tmpfile
done
# как только файл ненулевой, перегружаемся
reboot

 
Добавлено:
SysCommander

Цитата:
ifconfig eth0 down; ifconfig eth0 up  

проще тогда через service network restart


----------
Я никогда не спорю. Я никогда не противоречу. Я иногда забываю. / © Б.Дизраэли/

Всего записей: 10996 | Зарегистр. 30-08-2002 | Отправлено: 15:23 16-08-2008 | Исправлено: albel, 15:24 16-08-2008
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это плавающая проблема, железо может работать больше месяца, а может и один день. Мат плата в принципе новая, Nvidia чипсет, видимо из-за этого возникает проблема с доступом по сети, встроенные сетевые карты при подключении разъема вешали комп намертво, поставил Делинки 530-е.
Пока сделал самое простое:
 
if ping -q -c 2 $HOST; then
    echo "ping OK"
else
    echo "ping BAD"
    reboot
fi

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 20:44 16-08-2008
albel



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
digital422
а с tail'ом вариант чем не устроил?

----------
Я никогда не спорю. Я никогда не противоречу. Я иногда забываю. / © Б.Дизраэли/

Всего записей: 10996 | Зарегистр. 30-08-2002 | Отправлено: 20:53 16-08-2008
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Буду пробовать и с tail, просто с ping нашел решение быстрее и его запустил в работу, не хочется ради нажатия одной кнопки выезжать на объект.
Вопрос: этот скрипт запускать через cron или демоном ?

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 11:26 17-08-2008 | Исправлено: digital422, 11:38 17-08-2008
albel



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
digital422
Как хотите. Если по крону - то надо предусмотреть завершение работы скрипта перед следующим запуском.

----------
Я никогда не спорю. Я никогда не противоречу. Я иногда забываю. / © Б.Дизраэли/

Всего записей: 10996 | Зарегистр. 30-08-2002 | Отправлено: 12:05 17-08-2008
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Запустил по cron, не срабатывает. завершение работы скрипта перед следующим запуском - exit 0 ?

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 15:44 17-08-2008
albel



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
digital422
гм. Ну, выход из скрипта можно и через exit сделать, да. Вопрос в том, что тогда надо ещё прописывать время в скрипт или проверять, не запущен ли уже скрипт; если запущен - не стартовать новый. Второй путь прощё. Через ps | grep...

----------
Я никогда не спорю. Я никогда не противоречу. Я иногда забываю. / © Б.Дизраэли/

Всего записей: 10996 | Зарегистр. 30-08-2002 | Отправлено: 23:19 18-08-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru