Page 7 of 9 FirstFirst ... 56789 LastLast
Results 91 to 105 of 127

Thread: Вопросы по скриптам на bash (shell)

  1. #91
    Quote Originally Posted by Orex View Post
    Code:
    #!/bin/sh
    
    DIR="$1"
    
    for file in `ls -1 "$DIR" | grep '^.*html-.*$' | sed 's/ /~~~bs~~~/g'`
    do
    
        name=`echo "$file" | awk -F "-" '{print $1}'`
        
        for subfile in `ls -t "$DIR" | grep ^$name-.*\$ | sed -e '1d' -e 's/ /~~~bs~~~/g'`
        do    
            rm "${DIR}/`echo "${subfile}" | sed 's/~~~bs~~~/ /g'`"
        done
    
    done
    
    exit 0;
    Жесть..

    Проще добавить IFS=$'\n' перед первым циклом...

  2. #92
    Join Date
    Jan 2007
    Location
    Moscow
    Posts
    156

    Thumbs up Работает

    Да, Orex, скрипт работает, и рекурсия тоже. Спасибо за помощь

    P.S. Нужно было для удаления устаревших сжатых файлов из кэша lighttpd (с использованием mod_compress).
    Изменил префикс с
    Code:
    for file in `ls -1 "$DIR" | grep '^.*html-.*$' | sed 's/ /~~~bs~~~/g'`
    на
    Code:
    for file in `ls -1 "$DIR" | grep '^.*gzip-.*$' | sed 's/ /~~~bs~~~/g'`
    так как сжимаются не только html, но и другие файлы.

    При частом обновлении контента web-сервера конечно же полезно. Подробнее тут
    Last edited by KRandall; 19-09-2012 at 13:45.
    WL-500gP(v1, 64mb) (1.9.2.7-d-r2624 by Oleg) + 3 x USB HDD
    Работают: analog, syslog-ng, cron, samba 3, RTorrent+RuTorrent, lighttpd, vsftpd+, настроена сеть и сетевая печать

  3. #93

    сохранить скрипты в домашнем каталоге

    увы с Linux не знаком, но хотелось бы для удобства сохранить парочку скриптов в домашнем каталоге ~ root
    чтобы при логине сразу их выполнить.
    При выключении\перезагрузке роутера из домашней папки все файлы стираются

    переходить же постоянно на примонтированную флешку - лишние комманды(не удобно набирать с телефона)
    подскажите пожалуйста, почему удаляются файлы из домашней папки и как это победить ?

  4. #94
    Quote Originally Posted by belmont View Post
    увы с Linux не знаком, но хотелось бы для удобства сохранить парочку скриптов в домашнем каталоге ~ root
    чтобы при логине сразу их выполнить.
    При выключении\перезагрузке роутера из домашней папки все файлы стираются

    переходить же постоянно на примонтированную флешку - лишние комманды(не удобно набирать с телефона)
    подскажите пожалуйста, почему удаляются файлы из домашней папки и как это победить ?

    Читать, читать и читать данный форум!!!
    1.
    PHP Code:
    flashfs save && flashfs commit && flashfs enable 
    2.Проверить, что в выдаче есть tmp/local/root/
    3. Радоваться.
    4. Если нет - грустить. А потом, добавить нужную папку в /tmp/local/.files, потом
    PHP Code:
    flashfs save && flashfs commit && flashfs enable 
    и вот теперь уж точно радоваться.
    P.S. Если скрипт кинуть в /opt/bin то он будет легко вызываться по своему названию.

  5. #95
    Quote Originally Posted by MMX2 View Post
    Читать, читать и читать данный форум!!!
    flashfs save && flashfs commit && flashfs enable[/PHP]
    Прошу прощения - пытался найти поиском, почитал первые 8 страниц не нашел,
    по вашему ответу погуглил данные клманды многое узнал
    все работает, спасибо большое

  6. #96
    интересный прикол, если изменить шелл на bash, то по ssh не пускает:

    Code:
    ssh router
    admin@router's password: 
    Permission denied, please try again.
    admin@router's password:
    при этом по телнет прекрасно заходит:
    Code:
    ~ $ telnet router
    Trying 192.168.1.1...
    Connected to router.
    Escape character is '^]'.
    router login: admin
    Password: 
    router:~ $
    UPDATE: разобрался, нужно сделать файл /etc/shells и туда сунуть:
    Code:
    /opt/bin/bash
    /bin/sh
    надеюсь кому-либо пригодится данный tip
    Last edited by staticroute; 23-11-2012 at 22:16. Reason: update

  7. #97
    Quote Originally Posted by staticroute View Post
    UPDATE: разобрался, нужно сделать файл /etc/shells и туда сунуть:
    Code:
    /opt/bin/bash
    /bin/sh
    надеюсь кому-либо пригодится данный tip
    При установке пакета такое должно по идее прописываться.

  8. #98
    Quote Originally Posted by Zyxmon View Post
    При установке пакета такое должно по идее прописываться.
    Должно, конечно. Но мы не может тянуть свои костлявые ручищи к чему-либо за пределами папки /opt, во избежание внезапных глюков на различных прошивках.

  9. #99
    Quote Originally Posted by ryzhov_al View Post
    Должно, конечно. Но мы не может тянуть свои костлявые ручищи к чему-либо за пределами папки /opt, во избежание внезапных глюков на различных прошивках.
    А у меня специально dropbear пропатчен, чтобы нужный файл shells брать. Тут это возможно?

  10. #100
    Quote Originally Posted by ryzhov_al View Post
    Должно, конечно. Но мы не может тянуть свои костлявые ручищи к чему-либо за пределами папки /opt, во избежание внезапных глюков на различных прошивках.
    да, все верно, так как используется dropbear из прошивки, он тягает файлы из /etc, поэтому все как бы логично.

    если установить dropbear в /opt или openssh думаю он создаст нужные файлы в принципе.

    я сделал просто - добавил /etc/shells в /usr/local/.files и меняю шелл пользователю в /etc/passwd после того, как замаунтилась флешка.

  11. #101
    Zyxmon, staticroute, даже не знаю, будет ли правильным создавать в /opt/etc свой собственный ./shells.

  12. #102
    Quote Originally Posted by ryzhov_al View Post
    Zyxmon, staticroute, даже не знаю, будет ли правильным создавать в /opt/etc свой собственный ./shells.
    а что? вполне логично для пакетов, поставленных в entware, они же все с префиксом /opt, поэтому dropbear или openssh должен будет читать именно из /opt/etc/shells, но тогда и /opt/etc/passwd должен использовать вместо /etc/passwd.

  13. #103
    Quote Originally Posted by staticroute View Post
    а что? вполне логично для пакетов, поставленных в entware, они же все с префиксом /opt, поэтому dropbear или openssh должен будет читать именно из /opt/etc/shells, но тогда и /opt/etc/passwd должен использовать вместо /etc/passwd.
    Неоднозначно тут. У себя на кинетике я был вынужден так сделать для dropbear, т.к. Нет записи в /etc. А в проекте Entware - скорее всего это не стоит делать. Нужные патчи dropbear у меня есть, если потребуются.
    Можно, наверное, и на уровне uCllibC сделать изменения, последствия этого ..... ?????
    Last edited by Zyxmon; 25-11-2012 at 04:36.

  14. #104
    Join Date
    Jan 2007
    Location
    Moscow
    Posts
    156

    Question Скрипт с рекурсией

    Доброго времени суток, уважаемые форумчане.

    Есть вот такой скрипт, работает с рекурсией по каталогам
    Code:
    #!/bin/sh
    
    DIR="$1"
    
    re_match="1251"
    replace="html"
    
    for i in $( ls -A $DIR/*1251 );
      do
        src=$i
        tgt=$(echo $i | sed -e "s/$re_match/$replace/")
        iconv -f CP1251 -t UTF-8 $src > $tgt
      done
    rm $DIR/*1251 >/dev/null
    Помогли сделать его здесь, на форуме. Хоть в bash-е не особо, но понимаю, что в каталоге берутся все файлы с расширением .1251 и затем iconv-ом расширение меняется на .html

    Помогите пожалуйста реализовать следующее. То, что реализовано, остается без изменений + добавляется:

    К исходным файлам с расширением .1251 добавляется расширение .html (file.1251 -> file.1251.html)
    и внутри каждого полученного .1251.html-файла меняется последовательность 'utf-8' на 'win-1251'.


    С помощью sed-а все получается, но не знаю, как это сделать в цикле...

    P.S. Файлы .1251 наверное лучше сразу переименовывать в .1251.html чтобы потом их не удалять командой rm $DIR/*1251 >/dev/null
    Last edited by KRandall; 25-04-2013 at 19:02.
    WL-500gP(v1, 64mb) (1.9.2.7-d-r2624 by Oleg) + 3 x USB HDD
    Работают: analog, syslog-ng, cron, samba 3, RTorrent+RuTorrent, lighttpd, vsftpd+, настроена сеть и сетевая печать

  15. #105
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Quote Originally Posted by KRandall View Post
    С помощью sed-а все получается, но не знаю, как это сделать в цикле...
    После смены кодировки не торопитесь отправлять результат в новый файл, сперва подредактируйте его
    Code:
    iconv -f CP1251 -t UTF-8 $src | sed -e 's/utf-8/win-1251/' >$tgt
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

Page 7 of 9 FirstFirst ... 56789 LastLast

Similar Threads

  1. FAQ: часто задаваемые вопросы
    By Oleg in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 56
    Last Post: 13-09-2016, 12:06
  2. Вопросы по работе IPTV (EMF & WMF)
    By theMIROn in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 119
    Last Post: 29-03-2015, 13:18
  3. Вопросы по работе PHP на роутере
    By Jekl in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 164
    Last Post: 21-10-2014, 12:45
  4. Wifi connect client bash script export.
    By aegisrtcw in forum WL-500gP Q&A
    Replies: 0
    Last Post: 25-04-2012, 05:36
  5. Вопросы по перепрошивке dir-320
    By gweri in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 344
    Last Post: 29-10-2011, 10:36

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •