Сценарий Башы: Автоматтык түрдө Трансмиссиянын өткөрүү жөндөмүн көзөмөлдөө

Баарыңарга салам. Бул менин экинчи билдирүүм. Көбүнчө бөлүшө турган жакшы нерсем болбосо, бул жолу менде көпчүлүк кызыктыра турган нерсе болбосо, постторду жаза бербейм.

Бир нече ай мурун мен өтүнмөлөрдүн өткөрүү жөндөмүн чектөө үчүн сценарий жазууну ойлонуп жүргөм, бирок менде кыйынчылыктар жана каталар бар болгондуктан, менде кыйынчылыктар пайда болду Суперстан de <º FromLinux кимдир бирөөнүн ою бар болсо.

Ошентип, аны бир азга калтырып, бир күнү сценарийди улантууну чечтим. Мен көп сыноолорду жасадым, баш жөнүндө көп окудум, бош убактымда башым ооруп жатты, бирок мен аны жасадым !!

Мен аябай канааттандым жана андыктан кичинекей сценарийимди сиз колдонуп, өркүндөтө алышыңыз үчүн сиз менен бөлүшүүнү чечтим. Мен аны GPLv3 программасы боюнча лицензиялоону пландап жатам, бирок бул менин биринчи долбоорум, андыктан муну кантип жасаарымды так билбейм (мага буга чейин кимдир бирөөнүн кеңеши керек).

Эми, менин муктаждыгым кандай болгонун жана көйгөйдү чечүү үчүн эмне кылганымды түшүндүрүп берем.

Кырдаал
Менин 512 Кб Интернет планым бар, ошондуктан колдоном өткөрүү чоң файлдарды жүктөө үчүн BitTorrent кардары катары (LibreOffice жана айрым GNU / Linux дистрибуттары сыяктуу). Ушундай ылдамдыкта жүктөөлөр көпкө созулуп, маселе веб-браузерди колдонууда Firefox: жүктөө үчүн көп убакыт талап кылынат.

Интернетке туташканда, мен берүүнү жүктөөнү жана жүктөөнүн убактысын чектеп, Firefoxтун жүктөлүшүн күтүп, торренттерди кайрадан баштайм. Көрүнүп тургандай, муну эки жолу жасоо түйшүктүү. Башкасын айтпаганда дагы, кээде мен бардык агымдарды токтоосуз токтотуп, кайра күйгүзүүнү унутуп, torrent жүктөө / жүктөө үчүн баалуу убакытты текке кетирем.

чечим
Бул көйгөй үчүн Башта сценарий түзүүнү чечтим, ал негизинен төмөнкүлөрдү аткарат:

1. Трансмиссиянын иштеп жаткандыгын жана эч кандай торрент тындырылбагандыгын текшериңиз. Андай болсо, торрентти кайра күйгүзүңүз.

2. Firefox иштеп жаткандыгын текшериңиз. Андан кийин ал жиберген жана алган КБ / с алат жана аларды файлга сактайт.

3. Эгерде КБ / с жүктөө / жүктөө браузери шилтеме диапазонунан ашып кетсе, Трансмиссиянын жүктөө / жүктөө орнотуулары өзгөрүлөт.

Бул веб-баракчага кирүүнү каалаганда, браузер суроо-талапты жөнөткөндө, файлды жүктөө мүмкүнчүлүгү чектелип, баракчанын маалыматтары кабыл алынганда, жүктөө чектелет. Бул бир эле учурда бир нече баракчаны ачканда жакшы иштейт жана натыйжасы Трансмиссияны өчүргөн менен бирдей.

Эң чоң артыкчылыгы, ал толугу менен автоматтык болгондуктан жана менин кийлигишүүмдү талап кылбайт.

Сценарий
Аны каалаган колдонмонун өткөрүү жөндөмүн көзөмөлдөө үчүн колдонсо болот, бирок учурда ал өзгөчө бир көйгөйдү чечүү үчүн гана жазылган. Бирок модификациялоо оңой эмес.

талаптар
Ал талаптагыдай иштеши үчүн «» тиркемеси болушу керекторчоктор«.

Бул учурда, скрипт Firefox жана Transmission менен иштешкендиктен, "пресс-дистанциядан" тышкары, бул тиркемелерди орнотуу керек, бул жүктөө жана жүктөө агымдарын torrent өзгөртүүчү нерсе. Мен дагы "awk" сценарийинде колдоном. Мен муну айтып жатам, анткени бардык дистростор орнотулгандыгын билбейм.

программалык камсыздоо пайдаланылат
Скрипт колдонгон тиркемелердин тизмеси жана ал иштеген система.

• Debian GNU / Linux 6.0.8
• Linux 2.6.32-5-686
• Firefox 24.0
• Трансмиссия 2.03 (11030)
• Nethogs 0.7.0

аткаруу
Аны тамыр катары иштетүү керек, анткени торчоктор ошол колдонуучу менен гана иштетилиши мүмкүн, бирок алыскы берүү ал буйруктун жардамы менен кадимки колдонуучу менен аткарылат анын.

Сценарийде ички Bash буйругу колдонулат тузак SIGINT (CTRL + c) же SIGTERM сигналдарынын жардамы менен токтотулганда, берүүнү жүктөөнү / түшүрүүнү демейки баалуулуктарды калыбына келтирүүгө болот.

Аны иштете баштаганда жана компьютерди өчүрүп же өчүрүп-күйгүзгөндө кантип токтотуу керектигин дагы деле билбейм. Мен файлга шилтеме киргизүүнү ойлонуп жаттым /etc/rc.local бирок ал иштейби же жокпу билбейм, / etc / кантип иштээрин түшүнбөймinit.d (Мен ал жерде бир нече сценарийлерди көрдүм скелет, бирок мен аларды түшүнбөйм). Эгер кимдир бирөө мага жардам бере алса, анда мен абдан ыраазы болом.

 

Жакшы эл, болду. Менин кичинекей салымым сиз үчүн пайдалуу жана кааласаңыз, өркүндөтсөңүз болот деп ишенем. Файлда коопсуздукка байланыштуу көйгөйлөр келип чыкса, сиздин ой-пикирлериңизди жана сунуштарыңызды, ошондой эле сунуштарды окуп чыгууга кубанычтамын (мен программист эмесмин, кээде гана кээ бир нерселерди жасайм).

Кээ бир оңдоолордун жардамы менен ал келечекте эң сонун тиркеме болуп калышы мүмкүн экендигин билем, анткени бир дагы программаны билбейм. Мисалы, менде графикалык интерфейс болушу мүмкүн деген ой келет жандуулук жана өткөрмө жөндөмдүүлүктү (веб-браузер, жаңыртуу менеджери, файлдарды өткөрүү ж.б.) колдонууда артыкчылыктуу болгон колдонмолорду жана ар кандай шилтеме маанилерин тандай алабыз. Ооба, бул бир аз дымактуу, бирок бир топ пайдалуу.

Сиз сценарийди паста. Окуганыңыз үчүн чоң рахмат !!


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

23 комментарий, өзүңүздүкүн калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   элав ал мындай деди:

    О! Кызыктуу 😀

    1.    eliotime3000 ал мындай деди:

      Төмөнкү сол бурчта сиз Трансмиссияны жүктөөдө жана жүктөөдө да өткөрмө жөндөмүн чектей аласыз. Transmission менен менде эч кандай көйгөй болгон жок.

      1.    куки ал мындай деди:

        Бирок бул автоматтык түрдө, ошондой эле графикалык интерфейссиз Трансмиссия бар, андыктан сизде мындай функция анчалык ыңгайлуу болбосо керек.

      2.    Joaquin ал мындай деди:

        Салам Кандайсың.
        Ооба, мен буга чейин эле билем. Бирок дал ушул нерсени жасагым келбейт.
        Менин интернет планым абдан начар (512KB жана ал менин аймагымдагы эң мыкты).

        Менин сценарийим менен, мен баарын кол менен жасайм деп убара болбойм. Браузерден баракча ачып, ошол учурда Transmission бардык өткөрүү жөндөмүн ээлеп жатат деп элестетип көрүңүз, андыктан баракча жүктөлгөнгө бир аз убакыт талап кылынат (эң көбү 1 ′, бирок ал аябай ачууланат). Мен ар бир эки мүнөт сайын "убакыт чектөөлөрүн иштетүү" менен бүттүм. Бул автоматтык жана дээрлик бир заматта (Firefox тарабынан жиберилген жана кабыл алынган KB 5 секунд сайын текшерилет).

        Чындыгында ошол интернет ылдамдыгы менен менин ишимде, бул мыкты. Ошондой эле мен муну жасаган башка тиркеме жөнүндө билбейм, антпесе ал муну жасамак эмес. Мен көргөндөр өткөрүү жөндөмүн чектейт, бирок автоматтык түрдө эмес.

        Мен ачык эле деп үмүттөнөм. Окуганыңыз үчүн рахмат!

        1.    Joaquin ал мындай деди:

          Кечиресиз, мен жаңылдым. Алар 512KB эмес, тескерисинче, Kbits. (Башкача айтканда, 1/2 "Мега"). Мен жүктөп алуунун эң жогорку чеги - 75KB / s жана 50KB / s жүктөө. Интернет жакшы болгондо, антпесе нормалдуу 48 жана 23 болот.

    2.    Joaquin ал мындай деди:

      Рахмат!

  2.   куки ал мындай деди:

    Кызыктуусу, мен qBittorrentти колдонуп, которуштургучту чектерде колдоном.

    Пост ошол түстөр менен сонун көрүнөт😉

    1.    Joaquin ал мындай деди:

      Түстөр үчүн рахмат. Мен анча жакшы эмесмин, ушунча текст менен аябай узак жана бир өңдүү көрүнөт.

  3.   Хорхе ал мындай деди:

    Жеке өзүм, мен тиркеме тиркемеси менен transmission-demon жана firefox колдоном, андыктан тышкы программалар менен баспайм же торрентти же активдештирилген ташбаканы улантууну унутпайм (жана аны телефонумдан башкара алам). Кызматты баштоо үчүн колдонуучу кошулат (мисалы: adduser –disabled-password nethogs), демонст үчүн тексттик файл /etc/init.d аталышында түзүлөт (мисалы: nethogs-daemon), андан кийин дебянда "update-rc.d nethogs-daemon defaults" деп терип, ал өзүнөн өзү башталат.

    Текст файлы - бул баш скрипти, сиз аны скриптти бириктире аласыз.
    Бул сизге жардам бере алабы же жокпу, демонстрация-демонтту баштоого, нетхогдорду баштоого болот https://trac.transmissionbt.com/wiki/Scripts/initd

    1.    Joaquin ал мындай деди:

      Hello!
      Түшүнгөн-түшүнбөгөнүмдү карап көрөлү: бул берүүнү баштоодо баштоо жана өчүрүүдө же өчүрүп-күйгүзүүдө токтотуу. Ушуну менен менде эч кандай көйгөй жок, анткени ал ар дайым өзүнөн-өзү башталат жана жүктөлүп баштайт (мен аны Xfce программасында тиркемелерге коштум).

      Менин көйгөйүм, эгер мен сценарийди rc.local же init.d ичине киргизсем, компьютер скриптти кантип токтотконун билбейм. Башкача айтканда, компьютерди өчүрүүдө / өчүрүп-күйгүзүүдө, бардык процесстер токтотулат (жана алар менен бирге Transmission жана Nethogs дагы), бирок менин сценарийим эмне болуп кетерин билбейм.

      Анан эмне үчүн бул мени кыйнап жатат? Скрипт / tmp файлын түзүп, Берүүнүн ылдамдыгын башкарат. Эгерде мен аны терминалда иштетип, күтүлбөгөн жерден токтотуп койсом (мисалы, CTRL + c менен), скрипт жабуудан мурун демейки ылдамдыкты калыбына келтирип (керек болсо), андан кийин Nethogsту токтотуп, файлды / tmp дан өчүрөт. Бош файлдарды же фондук процесстерди калтырып кетпеши үчүн, мен аны мүмкүн болушунча "кесипкөй" кылууга аракет кылдым.

      Сиз айткандарыңыз жөнүндө, "тирүү тиркеме өтмөгү" деген эмне экендигин түшүнгөн жокмун.

      1.    Хорхе ал мындай деди:

        Колдонмо табулатурасы туруктуу табулатура, ал Firefox ичинде ар дайым ачык жана минималдаштырылат http://i.imgur.com/a5i0aP3.png (табулатурадагы контексттик меню, "Вставканы коюңуз"). Демондор TERM сигналын жибергенде, алар чыгып кеткенге чейин бир аз күтүп, маалыматтарын сактап калышат. Сценарийден чыкканда мен берген шилтемеде start-stop-demon чакырып, берүүнү токтотуу керектигин айтсаңыз, анда "killall nethogs" жана анын курамында StopScript камтылган нерселер бар. Бул учурда init сценарийин белгилүү бир колдонуучунун ордуна root деп аташ керек, анткени ал артыкчылыктарга муктаж.

        1.    Joaquin ал мындай деди:

          Жакшы кеңеш үчүн рахмат. Убактым болгондон кийин мен аракет кылып көрөм!

  4.   facundo ал мындай деди:

    сонун, мен бул кемчиликке туш болдум, анткени сизде ылдам байланыш болсо дагы, сиз серфинг өткөргүңүз келип, убакытты "текке кетиргенге" мажбур болосуз.
    Колумдан келсе сынап көрөйүн деп жатам. Салам жана рахмат !!

    1.    Joaquin ал мындай деди:

      Рахмат сага! Бул сага жардам бере алат деп ишенем!

      1.    facundo ал мындай деди:

        Салам дагы Хоакин. Менин оюмча, сиз бардык комментарийлерге жооп берүүгө кам көрүп жатасыз, ошондуктан мен ушул мүмкүнчүлүктөн пайдаланып, сизге бир-эки жаңы суроолорду берейин деп жатам.
        Биринчиден, менде "awk" скрипти орнотулгандыгын кантип билсем болот? Мен Debian 7.2 колдоном.
        Экинчиден, паста кодун эмне кылышты билбейм. Мен тексттик редакторду кармап, "bandwidth-controller.sh" деп аталган файлга сактап, андан кийин "./band-width-control.sh" деп иштетишим керек. Бул менин эң көп адашкан жерим.
        Үчүнчүсү: Сиз аны root катары иштетүү керектигин айтканда, колдонуучудан rootга өтүш керекпи же sudo мененби?

        Эгерде сизде мага ушул тема боюнча сунуш кыла турган окуулар болсо, мен аны баалайм.
        Силерге тынчтык болсун!

  5.   Жискард ал мындай деди:

    Ошондуктан мен ар дайым Transmission программасын чыгарып, Delugeди орнотом. Ошону үчүн, жана дагы бир нерсе алып келиши мүмкүн, анткени Делуд мага экинчиси алып келбейт.

    1.    Joaquin ал мындай деди:

      Салам, мен Делуду билбейм. Менин негизги көйгөйүм - интернет кызматы. Муну менен мен аны толук кысып жатам.

  6.   панда ал мындай деди:

    Салам. менин өткөрүү жөндөмүм да чектелген, андыктан ушул сценарийди сынап көрдүм. Бирок ал иштебей жатат. ката nethogs -t командасында окшойт. ал "Биринчи пакеттин келишин күтүп жатабыз (sourceforge.net bug 1019381 караңыз)" деген катаны кайтарып берет жана мен жалбыз, archlinux жана башка эч нерсени сынап көргөн жокмун. Кайра кайтып келиши керек деген буйрук эмне? Ар бир тиркеме колдонгон өткөрүү жөндөмүн жөнөкөй текстте басып чыгаруу керек деп ойлойм. Тармакты угууга мүмкүнчүлүк берген дагы бир программаны билесизби?

    1.    Joaquin ал мындай деди:

      Салам Кандайсың.
      Бул Nethogs катасы. Бул мага да көрүнөт, бирок баары бир иштейт.

      Nethogs - бул өткөрмө жөндөмдү эң көп керектеген процесстерди, реалдуу убакыт режиминде көрсөтүү. Скриптте, анын чыгышы кийинчерээк чыпкаланып турушу үчүн, "net.list" текст файлында сакталат.

      Сценарий Transmission (BitTorrent кардары) жана Firefox (веб-браузер) менен гана иштейт. Firefox веб-баракчаны жүктөп жатканда Transmissionдин өткөрүү жөндөмүн чектейт. Сиз орнотушуңуз керек: Nethogs, Transmission, Transmission-remote жана Firefox.

      Бардыгы постто түшүндүрүлгөн, андыктан сиздин көйгөйүңүз эмне экенин билбейм.

      PS: Сураныч туура жазып, орфографияны жакшыртыңыз. Бул тексттик билдирүү эмес, комментарий.

      1.    панда ал мындай деди:

        сценарий мен үчүн иштебейт. ошол ката жөнүндө билдирүүнү көп жолу басып чыгарат. "nethogs -t" иштетип, эмне кылаарын билүү үчүн терминалда, бирок эч нерсе басып чыгарбайт, жөн гана ката. менин компьютеримде ал иштебей жатат. Менимче, ал процессти жана өткөрмө жөндөмүн көрсөтүп, -t режиминде аткарылгандан кийин басылып чыккандай окшош нерсени басып чыгарышы керек. бирок менин ишимде ал эч бирин басып чыгарбайт. сценарийди иштеп чыгуу үчүн кайсы бурмалоону колдондуңуз?

        1.    Joaquin ал мындай деди:

          Жакшылап карасаңыз, постто колдонулган бардык программалар жана анын версиялары камтылган. Эмне үчүн ката болгонун билбейм, бирок "nethogs -t" иштетилген сайын, ал мага көрүнүп турат. Сценарийде ал ар бир 2 happen сайын болот.

          Балким, сиз нетхогдорду иштетип жатканыңызда, тармакты колдонуу процесси жок болуп, натыйжада эч кандай натыйжа чыкпайт.

          Скрипт root катары иштетилиши керек, анткени nethogs иштеши үчүн ошол колдонуучу керек.

          эми мен бир маанилүү нерсени эстедим жана ал эмне үчүн сизге иштебей тургандыгын билем:

          СЦЕНАРИЙДИ ТҮЗӨТҮП, кадимки колдонуучунун атын өзгөртүшүңүз керек. Сценарийде ал "жоакин" деп аталат. Аны колдонуучунун атына өзгөртүү керек.

          Кечиресиз, мен муну түшүнгөн жокмун, аталышын өзгөрмөгө коюшум керек болчу. Эмне болот, мен муну ушунчалык жалпылоону ойлонбоптурмун, аны сизге көрсөткүм келди, ошондо сиз көрө аласыз жана каалагандар муну кантип жасоо керектиги жөнүндө ойлорду ала алышат. Мен аны каалаган компьютерде иштейт деген ниет менен жасаган жокмун, убакытты талап кылат жана кантип программалоону билбейм, кээ бир нерселер менин башымда болот.

          Ийгилик, дагы бир нерсе суралсын. Жана сценарийдин постун жана комментарийлерин дагы бир жолу окуп чыгыңыз.

  7.   facundo ал мындай деди:

    Салам Хоакин, мага төмөнкүнү айтып бер:

    алыскы берүү: (http://localhost:9091/transmission/rpc/) Серверге туташпай койду
    ioctl тандалган eth0 шайманына жергиликтүү IP орнотулуп жатканда ишке ашкан жок. Сиз шайманды буйрук сабында көрсөтсөңүз болот.

    any ideas ?? рахмат!

    1.    Joaquin ал мындай деди:

      Салам Кандайсың.
      Кечиресиз бирок менде эч кандай түшүнүк жок 😀
      Менин түшүнгөнүм боюнча, ката ioctl менен байланыштуу, бирок мен эмне экенин билбейм.

      Балким, сценарийди токтотуп, анын алыскы бөлүгүнүн айрым параметрлери менен иштей тургандыгын байкап көрүңүз (анын адам баракчасын "man" буйругу менен окуп чыгыңыз).