„Csak guruknak” – konyhanyelven…

Kezdőlap Fórumok Programozás „Csak guruknak” – konyhanyelven…

10 bejegyzés megtekintése - 131-140 / 151
  • Szerző
    Bejegyzés
  • #2081798
    birno
    Felhasználó
      uzsolt wrote:
      Gondoltam, összedobok gyorsan egy szkriptet, ami valami cron-démon segítségével megadott időközönként ellenőrzi a megadott weboldalak tartalmát, hogyha esetleg újdonság keletkezik, arról én is értesüljek. Mielőtt még valaki mondaná, hogy RSS, mondanám, hogy sajna nem mindegyik oldalon van ilyen.
      Szóval, akkor a szkript:

      Code:
      #!/bin/bash

      MD5SUM_FILE=/etc/webdiff/md5sums
      CURDIR=`pwd`

      for i in `cat /etc/webdiff/webdiff.conf`; do
          DIR=`mktemp -d`
          cd $DIR
          wget $i &> /dev/null
          RESULT=$(grep „$i ” $MD5SUM_FILE 2>/dev/null)
          if [ „$RESULT” = „” ]; then
              (echo -n „$i ” ; md5sum $(basename $i)) >> $MD5SUM_FILE
          else
              if ( ( echo $RESULT | awk {‘print $2″  „$3’} ) | md5sum -c –status); then # Nincs változás
                  true
              else # Változás történt
                  if ( pidof X > /dev/null ); then
                      echo „Változás: $i” | osd_cat &
                  else
                      echo „Változás: $i”
                  fi
                  echo „Változás: $i” >> /home/zsolt/WEBLAP-VALTOZAS
                  LINE=$(grep -n ‘$RESULT’ $MD5SUM_FILE | awk -F „:” {‘print $1’})
                  sed -i „${LINE}d” $MD5SUM_FILE
                  (echo -n „$i ” ; md5sum $(basename $i)) >> $MD5SUM_FILE         
              fi
          fi
          rm $(basename $i)
          cd $CURDIR
          rmdir $DIR
      done

      Ami kell hozzá: md5sum, mktemp, awk, wget, osd_cat (xosd része). Meg persze a szokásos alapdolgok. Na meg nem árt, ha a /etc/webdiff könyvtárra a futtatónak van írásjoga 🙂 Persze át lehet írni más könyvtárra is.
      A /etc/webdiff/webdiff.conf megadja, hogy mely honlapokat kell ellenőrizni. Szerkezete: új sorokkal elválasztva a honlapcímek (htm(l)-fájlokat kell megadni!).

      Az else-ágba bármit lehet írni, hogy mi fusson le, ha valami változás történt. Jelen esetben ha megy az X, akkor a root-ba beírja az üzit, ha nem, akkor szimplán egy echo zajlik le. Meg ha véletlenül elkerülné a figyelmem, még egy WEBLAP-VALTOZAS nevű fájlba is beírok (amit lehet, hogy egy gkrellm-ben fogok figyelni a megfelelő plugin-nel).
      Nyilván, ha az osd_cat helyett mást írsz, akkor az osd_cat nem kell 😉

      Remélem, hasznotokra válik  :-*

      Ezzel csak az az egy baj van, hogy flash-t tartalmazó oldalaknál vagy olyannál ami véletlenszerűen váltogat képeket, mindig jelez.

      Eddig specto-t vagy webmonx használtam, ezeknél ez a probléma áthidalható volt.
      Tudom, hogy vannak oldalak ahol e-mailben értesítenek, de valami „console-based”” cucc jobb lenne. 🙂

      #2081799
      uzsolt
      Felhasználó

        Csak egy-két ötlet (épp egy wesnoth-játék közepén vagyok 🙂 ): dump-old a html-t, és a képekre/flessekre való hivatkozásokat ne vedd figyelembe (pl. sed-del, grep-pel vagy ilyesmivel kiszűröd). De a legegyszerűbb, ha az adott oldal rss-ét nézed (ha van) 🙂

        #2081800
        birno
        Felhasználó
          uzsolt wrote:
          Csak egy-két ötlet (épp egy wesnoth-játék közepén vagyok 🙂 ): dump-old a html-t, és a képekre/flessekre való hivatkozásokat ne vedd figyelembe (pl. sed-del, grep-pel vagy ilyesmivel kiszűröd). De a legegyszerűbb, ha az adott oldal rss-ét nézed (ha van) 🙂

          Ha van akkor természetesen azt nézem. 🙂

          #2081801
          pointux
          Felhasználó

            Nos ezúttal egy kis scriptet készítettem, mely egy adott könyvtárban listát készít adott állományok egyenkénti, valamint összesített tulajdonságairól. A tulajdonságok között szerepel a neve, a benne foglalt sorok száma, valamint a méretük.
            Így pl. könnyen ellenőrizhetjük, hogy mekkora egy project.

            Code:
            Usage: count_files [-h|–help] [-p|–patterns pattern1 pattern2 –] [-d|–directory directory]

                -h print this help
                -p file patterns to list (default: *)
                -d set the working directory (default: .)

            #2081802
            pointux
            Felhasználó

              Na, akkor most lássunk egy kis olyat, ami még nem volt. :)))
              A gentooról lesz szó, úgyhogy akit nem érint, most ne figyeljen ide. 🙂

              A probléma:

              Felvetődött a kérdés, hogy meg lehetne-e oldani azt, hogy egyes csomagokat teljesen saját paraméterekkel forgassunk, hiszen, ha valami gond van, akkor nem működik a „world„, sőt, ha egy use flaggel nem lehet megoldani a kérdést, akkor átírkálhatjuk ideiglenesen a make.conf-ot, sőt, ha egy flag-et akarunk átadni a linkernek, akkor hagyhatjuk az egész portage-t.
              Persze feltehetjük azt a kérdést is, hogy mi van akkor, ha kicsit eltérő architektúrára fordítunk. Nyalván nem akarunk mindent lefordítani nyócszor, de néhány csomagot viszont nem árt. De ekkor el kéne a csomagokat különíteni egymástól. (Legalábbis azt a néhányat a többitől.) Kézzel nyílván nem akarjuk átmásolgatni, a make.conf-ot meg pláne nem akarjuk átírogatni folyton.

              Akkor mi lenne a megoldás?

              A neve bashrc. Köztudott, hogy van ilyen, de kevésbé köztudott, hogy több is van/lehet belőle. Többek között a portage-nak is lehet ilyenje.
              Tehát nincs más dolgunk, mint írni egy kis scriptet, mely egy konfigurációs file segítségével elvégzi a szükséges lépéseket.
              Ezt a konfigurációs file-t én package.cos-nek neveztem el. (Persze bármilyen nevet adhatunk neki.) E file-nak a helyét hagyományosan az /etc/portage könyvtárban jelöltem meg. (Természetesen ez sem kötelező érvényű.)

              Mi is szintaktikája a package.cos-nek?

              Code:
              kategória/csomagnév    utasítások

              A script – egyelőre – nem támogatja a =kategória/csomagnév-verzió és hasonló kifejezéseket.

              Utasítások:
              %c* op1 op2 … – C opciók
              %x* op1 … C++ opciók
              %cx* op1 … C_és_C++_flagek
              %l* op1 – linker_opciók
              %m* op1 – make_opciók
              %loc* loc1 – lokalizáció
              %march – másolja át a lefordított csomagokat „mtune” könyvtárba, ha nincs „mtune” meghatározva, akkor „march” könyvtárba, ha az sincs, akkor default lesz a neve
              %tmpdir=tmpdir – egyéni munkakönyvtár megadása (akkor hasznos, ha memóriában fordítunk, de egyes csomagok nem férnek bele; a hatékonyságot szemelőtt tartva csak a forrás kerül át, minden más a file marad az eredeti helyen)
              * bizonyos opciók után al opciókat határozhatunk meg.
                nincs al opció – az előzőek felülírása
                = – az előzőek felülírása
                + – az előzőek bővítése
                += – az előzőek bővítése

              Code:
              media-video/mplayer    %cx+ -mssse3
              media-video/transcode    %m -j1
              app-office/openoffice    %tmpdir=/var/tmp/portage

              Magyarázat:
              az mplayer C, illetve C++ flagjeit (az alapértelmezett flagekhez képest) bővítse az -mssse3 kapcsolóval.
              a transcode fordítása csak 1 szálon fusson (az alapértelmezettel ellentétben)
              az openoffice munkakönyvtára (az alapértelmezettel – pl. /dev/shm/… szemben) a /var/tmp/portage/… könyvtárban legyen

              Mi a teendő?

              Mentsük el a bashrc-080705.txt nevű file-t a /etc/portage könyvtárban bashrc néven.
              Majd hozzunk létre egy package.cos nevű file-t ugyanebben a könyvtárban. (Ezt a file-t szerkesszük az itt leírtak szerint.)

              Figyelem! A script szabadon – feltételek nélkül – felhasználható, a használatából fakadó károkért semmilyen felelősséget nem vállalok. Az alapértelmezett beállítások/flag-ek felülírásához előképzettség szükségeltetik, mert felelőtlen használata károkat okozhat a sw-ben. Tehát az használja, aki tudja, hogy mit csinál.

              Jó szórakozást!

              #2081803
              xcut
              Felhasználó

                package.env package.keywords package.use package.mask package.umask
                ezek ugyanezt valósítják meg 🙂

                #2081804
                pointux
                Felhasználó
                  xcut wrote:
                  package.env package.keywords package.use package.mask package.umask
                  ezek ugyanezt valósítják meg 🙂

                  Si tacuisses, philosophus mansisses. 🙂

                  #2081805
                  pointux
                  Felhasználó

                    Közben kiderült, hogy légy van a levesben. 🙁
                    Pl. java-config-2 telepítésénél a következő üzenetet kapjuk: „arch config not found”.

                    A javított verziót most mellékelem.

                    #2081806
                    pointux
                    Felhasználó

                      Már 120 napja nem írtam ide, úgyhogy megfontoltam és újra felszínre hozom egy kis mplayer/mencoder scripttel, mellyel még kényelmesebben vehetünk fel a tv-ből, mint valaha.

                      Egyelőre 6 függvényt futtathatunk.
                      A scriptben vannak az alapértelmezett és a használható paraméterek a fűggvények fölött.

                      Ha pl. alapértelmezett beállításokkal le akarunk menteni egy TV adást, akkor mindössze ennyi a dolgunk:

                      Code:
                      MencoderTV ch E7

                      vagy, ha már definiáltuk

                      Code:
                      MencoderTV ch ${CH_M2}

                      Ha 3/4-ére akarjuk kicsinyíteni a felvételt:

                      Code:
                      SetVF scale 3 4
                      MencoderTV ch ${CH_M2}

                      Ha pl. meg akarjuk változtatni a video codecet, amely alapértelmezetten h264:

                      Code:
                      SetOVC quality high
                      SetVF scale 3 4
                      MencoderTV ch ${CH_M2}

                      Ha pl. meg akarjuk változtatni a video codecet egy gyors, alacsonyabb minőségű xvidre

                      Code:
                      SetOVC codec xvid quality low
                      SetVF scale 3 4
                      MencoderTV ch ${CH_M2}

                      stb.

                      Ilyen egyszerű.

                      #2081807
                      pointux
                      Felhasználó

                        Akkor ismét less:

                        Code:
                        export LESSCOLOR=yes
                        export LESSCOLORIZER=pygmentize
                        less proba.c

                        És öröm. 🙂

                      10 bejegyzés megtekintése - 131-140 / 151
                      • Be kell jelentkezni a hozzászóláshoz.