Kirjoittaja Aihe: Pienet näppärät scriptit (bash, python, perl yms.)  (Luettu 121236 kertaa)

eDIT

  • Käyttäjä
  • Viestejä: 319
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #140 : 27.10.08 - klo:22.43 »
Sieltä tuli vastaus kuin apteekin hyllyltä :) kiits

snifi

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #141 : 19.11.08 - klo:15.40 »
Lyhyt Python-skripti, jota voi käyttää vaikkapa sähköpostintarkistusohjelman lisänä. Vilkuttaa näppäimistön kolmoslediä kymmenesosasekunnin ajan kymmenen sekunnin välein. Esimerkiksi Korn:iin uuden saapuneen postin muistuttimeksi. Hiiren vasemman näppäimen painalluksen voi tämän jälkeen asettaa Korn:issa sammuttamaan ohjelman, komento silloin "killall LedBlinkForNewPost"

LedBlinkForNewPost:
Koodia: [Valitse]
#!/usr/bin/python

import os
import time

def blink_for(sek):
  os.system("xset led 3")
  time.sleep(sek)
  os.system("xset -led 3")

while True:
 blink_for(.1)
 time.sleep(10)



gdm

  • Sitä saa mitä tilaa...
  • Käyttäjä
  • Viestejä: 4363
    • Profiili
    • Keskustelualueiden säännöt
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #142 : 19.01.09 - klo:11.57 »
Nostetaanpa tätä vanhaa aihetta,

Ei niinkään scripti, vaan helppokäyttöisyystoiminto ssh:ille
Helpottaa huomattavasti jos useampia etäkäyttökoneita.
man ssh_config
Antaa paljon lisäoptioita mitä käyttää

Koodia: [Valitse]
cat .ssh/config
host haluttunimi
hostname osoite.ip/osoite.www
user kohteenkäyttäjätunnus
port portti

host perhe
hostname ******.bileet.be
user ***
port 8000

host kapsi
hostname kapsi.fi
user *****

tta@hellride:~$

jolloin yhteys muodostuu helposti, ssh host
Koodia: [Valitse]
ssh perhe
Lisää [Ratkaistu] aloitusviestiin jos ongelmasi selviää!
Saamasi tuki on ilmaista, joten älä vaadi tai uhkaile saadaksesi apua!

snifi

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #143 : 19.01.09 - klo:15.12 »
Tähän keskusteluun yksi kysymys: Miten tehtäisiin pieni ja yksinkertainen ajanottoon soveltuva sekuntikello?

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #144 : 19.01.09 - klo:15.46 »
Jos haluat kellottaa jonkin toiminnon suorittamiseen kuluvan ajan voit käyttää time komentoa.


mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #145 : 19.01.09 - klo:18.03 »
Ja jos pitää ottaa aikaa jostakin ulkoisesta tapahtumasta niin "time cat" käynnistää ajanoton ja ctrl + D pysäyttää sen.

beh

  • Käyttäjä
  • Viestejä: 154
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #146 : 08.02.09 - klo:10.58 »
Weekalarmin Amarok 2:sen kanssa toimivaa versiota odotellessa tässä on yksinkertaisempi korvike. Voit asettaa herätysajan, äänen voimakkuudet alussa ja lopussa sekä äänenvoimakkuuden säätönopeuden.

Tämän saa toimimaan monilla muillakin soittimilla jos muokkaa nuo d-cop lausekkeet sopiviksi.

Koodia: [Valitse]
#!/bin/bash

#default alarm time; can also be given as an argument
alarmTime="07:00"
#fade in time in minutes
fadeInTime=10
#Volume; integers between 0-100
startVol=50
finalVol=100



if [[ $# == 1 ]]
  then
  alarmTime="$1"
fi

now="$(date +%s)"
alarmTime="$(date --date "today $alarmTime" +%s)"

delay=$(( $alarmTime-$now ))
#check if we are past $alarmTime
if [[ $delay -le 0 ]]
  then #alarm tomorrow
    delay=$(( $delay + 24*60**2 ))
fi

fadeInTime=$(( 60*$fadeInTime ))
if [[ $delay -le $fadeInTime ]]
  then
  fadeInTime=10
  else
  delay=$(( $delay - $fadeInTime ))
fi

volumeSeq=$(echo "$(for i in {1..10}; \
            do echo $(( $startVol + $i*( $finalVol-$startVol )/10 ));done)" | uniq)
fadeInCycle=$(( $fadeInTime/$(echo "$volumeSeq" | wc -l) ))



sleep $delay

dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.VolumeSet  int32:${startVol}

dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Play

for i in $volumeSeq;
  do
  sleep $fadeInCycle;
  dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.VolumeSet  int32:${i}
done

exit 0


aurinkolasit

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #147 : 09.02.09 - klo:19.18 »
Moro,

Jos haluaapi kopioida isoja tiedostoja omalla koneellaan bashissa, olisi siistiä, jos näkis kopioinnin etenemisen. Tällöin voisi tietysti käyttää rsynciä lokaalisti:
Koodia: [Valitse]
rsync --progress src dst
Mutta mä halusin keksiä pyörän uudestaan ja käyttää kätevää pikku ohjelmaa pv. Asennus:
Koodia: [Valitse]
sudo apt-get install pv
Koodia: [Valitse]
#!/bin/bash

if (($#!=2)); then
        echo "Usage: "
        echo "$0 SRC DST"
        echo "For mulitple files, add double quotes around SRC argument"
        exit 1
else

for files in $1
do
        pv -p -r "$files" > $2/"$files"
done
fi

Kutsun tätä skriptiä nimellä cpy.sh. Tämä siis lyhykäisyydessään kopsaa haluamasi tiedosto(t) ja näyttää etenemisen bashissa.


« Viimeksi muokattu: 09.02.09 - klo:19.47 kirjoittanut aurinkolasit »

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #148 : 18.03.09 - klo:15.45 »
ei kellää olis jotain hyvää scriptiä millä sais telkku tiedot vaikka mysqliin tai muuhun?

Linux user #460798

UbunTux

  • Käyttäjä
  • Viestejä: 2046
  • KubunTux
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #149 : 18.03.09 - klo:20.27 »
ei kellää olis jotain hyvää scriptiä millä sais telkku tiedot vaikka mysqliin tai muuhun?

Telkun tiedot saat XML-tiedostoon xmltv:llä.

konffit kuntoon
Koodia: [Valitse]
tv_grab_fi --configureja tiedot hakuun
Koodia: [Valitse]
tv_grab_fi --output tvguide.xml
KDE neon
Uudempaa KDE:tä Ubuntulla

UbunTux

  • Käyttäjä
  • Viestejä: 2046
  • KubunTux
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #150 : 21.03.09 - klo:23.36 »
Tuo KMPlayer ei oikein luotettavasti näyttänyt KDE4 toimivan vielä Konquerorissa upotettuna.

Väänsin seuraavan skriptin, jolla voi katsella ja ladata ohjelman ohjelman osoitetta vastaan. Tai no tämä on oikeastaan homehtunut kovalevyllä kuukausia, pientä fiksailua vain.

Koodia: [Valitse]
#!/bin/bash
testi()
{
if [ "$?" -eq "1" ]
then
echo osoitetta ei ole
exit 1
fi
}
osoite()
{
if [ "$sivu" =  "" ]
then
echo "Et antanut osoitetta"
exit 1
fi

asx=$(echo $sivu|grep -e id=.* -o|cut -d "=" -f2)
wget "$sivu" -O /tmp/"$asx" --quiet
testi
nimi=$(grep '<span class="smaller-more">' /tmp/"$asx"| sed -e 's/<span class="smaller-more">//g' -e 's/<.*//g' )
      nimi=$(echo $nimi| sed -e 's/ //g')
rm /tmp/"$asx"
wget "http://www.yle.fi/java/areena/dispatcher/"$asx".asx?bitrate=1000000" -O /tmp/"$asx"-ylen_hyvää_palvelua --quiet
testi
video="$(grep  HREF  /tmp/"$asx"-ylen_hyvää_palvelua |sed -e 's/http/mms/g' -e 's/.*HREF="//g' -e 's/"><.*//g'|head -n1)"


if [ $(echo "$video"|grep wma$|wc -l)  -gt 0 ]
then
cache="200"
paate=wma
elif [ $(echo "$video"|grep wmv$|wc -l)  -gt 0 ]
then
cache="700"
paate=wmv
else
echo "Tähän en ole keksinyt keinoa. Tarvitaan URL suoraan wmv/wma -tiedostoon." && exit 3
fi
  rm /tmp/"$asx"-ylen_hyvää_palvelua
echo ""
echo ==================================================================================
echo "Ohjelman osoite: $video"
echo "Ohjelman nimi: $nimi"
echo ==================================================================================
echo ""
}


tallennus()
{
if [ "$kohde" ==  "kde" ]
then
kohde=$(kdialog --title "Mihin tallenetaan?" --caption YLE-Areena --getexistingdirectory .)
if [ "$kohde" =  "" ]
then
echo kohdetta ei valittu
exit 2
fi
elif ! [ -d "$kohde" ]
then
echo Kansiota "$kohde" ei ole olemassa
exit 2
fi
osoite
a=0
lataus="$kohde"/"$nimi"."$paate"
while [ -d "$lataus" ] || [ -f "$lataus" ]
do
a=$( expr "$a" + 1 )
lataus="$kohde"/"$nimi"-"$a"."$paate"
done
}

lataa()
{
tallennus
echo mplayer -dumpstream  $video -dumpfile "$lataus"
mplayer -dumpstream  "$video" -dumpfile "$lataus"
}

katso()
{
osoite
echo mplayer "$video" -cache $cache
mplayer "$video" -cache $cache
}

ohje()
{
cat <<EOF
Katso:
ylelataa -o URL -k

Lataa:
ylelataa -o URL -l "kansio"
-l kde: KDE-dialogi
EOF
}

if [ $# -eq 0 ]
then
ohje
exit 0
fi


while getopts o:l:kh opt; do
case $opt in
o) sivu="$OPTARG" ;;
l) kohde="$OPTARG"  && lataa  ;;
k) katso  ;;
h) ohje && exit 0  ;;
esac
done

sleep 2
exit 0
Tällä sen voi kytkeä Konqueroriin
$HOME/.kde/share/kde4/services/ServiceMenus/yle.desktop

Koodia: [Valitse]
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,text/html
MimeType=text/html;
Actions=katso;tallenna;
Encoding=UTF-8
X-KDE-Submenu=YLE-Areena

[Desktop Action katso]
Name=Katso Video
Exec=konsole -e $HOME/.bin/ylelataa -o '%U' -k
Icon=video-x-ms-wmv
[Desktop Action tallenna]
Name=Tallenna video
Exec=konsole -e $HOME/.bin/ylelataa -o '%U' -l kde
Icon=video-x-ms-wmv

KDE neon
Uudempaa KDE:tä Ubuntulla

snifi

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #151 : 23.03.09 - klo:15.59 »
Kysymys tähän ketjuun: Miten konsoliohjelmassa toteutetaan se osa, joka piirtää ja kirjoittaa tarvittavat tekstit konsoli-ikkunaan (esim. curses-kirjastoilla), ja ohjelmaa lopetettaessa palauttaa konsolin samaan tilaan jossa se oli ennen ohjelman käynnistystä?

(kuten esim man-komento:)
$ man ls
...manuaalisivun selausta... ...painetaan: q
$ man ls # takaisin komentotulkkiin

« Viimeksi muokattu: 23.03.09 - klo:16.01 kirjoittanut snifi »

eDIT

  • Käyttäjä
  • Viestejä: 319
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #152 : 23.03.09 - klo:17.23 »
Ööh.. Onko olemassa ohjelmaa joka ei tee mitään muuta kuin odottaa (lopettamista)?
sleep komento ei käy koska se vaatii aikamäärän.

Jone

  • Käyttäjä
  • Viestejä: 182
  • \,,/
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #153 : 23.03.09 - klo:17.48 »
Ööh.. Onko olemassa ohjelmaa joka ei tee mitään muuta kuin odottaa (lopettamista)?
sleep komento ei käy koska se vaatii aikamäärän.
En tiedä kuinka "oikein" tämä on mutta
Koodia: [Valitse]
readodottaa kunnes painaa enteriä.. jos tätä tarkoitit?

eDIT

  • Käyttäjä
  • Viestejä: 319
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #154 : 23.03.09 - klo:20.25 »
Ööh.. Onko olemassa ohjelmaa joka ei tee mitään muuta kuin odottaa (lopettamista)?
sleep komento ei käy koska se vaatii aikamäärän.
En tiedä kuinka "oikein" tämä on mutta
Koodia: [Valitse]
readodottaa kunnes painaa enteriä.. jos tätä tarkoitit?

read ajaisi asian muuten mutta koska se on bashiin sisäänrakennettu, se ei näy prosessina eikä sitä täten voida lopettaa kill komennolla
Idea on siis laittaa skripti odottamaan että se saa "luvan" lopettaa.. tämä lupa annettaisiin komentona tappamalla tuo odottava prosessi (huom kommennon suorittajana toimii erillinen ohjelma enkä esim minä itse komentoriviltä) .. ideas?

simppeli

  • Käyttäjä
  • Viestejä: 46
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #155 : 23.03.09 - klo:22.02 »
Osaisiko/viitsisikö kukaan koodata minulle ja tänne foorumille jakoon sellaista bash koodinpätkää joka loisi annetunnimisen käyttäjätunnuksen, loisi sille random salasanan, loisi kotihakemiston ja muuttaisi omistajan oikeaksi ja lopuksi näyttäisi käyttäjätunnuksen ja salasanan. Aa, joo ja kaikki saisi onnistua yhdellä komennolla ja sen perässä olevalla käyttäjätunnuksella, onnistuisiko se joltain gurulta täällä? Ite ku en oikein osaaa näitä pro juttuja  :-\, toivonmukaan joku minua joku tässä auttaisi. ::)
« Viimeksi muokattu: 23.03.09 - klo:22.06 kirjoittanut simppeli »

AlbertRetro

  • Käyttäjä
  • Viestejä: 1084
  • Puun uudelleenistutus auttaa usein... <resetointi>
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #156 : 23.03.09 - klo:22.50 »
Isipapan koneen meinasit sitten kertalinttuusta kaapata. :) ;) :D ;D
Vai siellä kirjastossa sittenkin?

Terveisin Alpertti
    "...minä mikään viisas ole, tahdon elää vain kuin ihminen..."   http://forum.ubuntu-fi.org/index.php?topic=22423.new#new  counter.li.org #417588

simppeli

  • Käyttäjä
  • Viestejä: 46
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #157 : 24.03.09 - klo:14.59 »
Isipapan koneen meinasit sitten kertalinttuusta kaapata. :) ;) :D ;D
Vai siellä kirjastossa sittenkin?

Terveisin Alpertti
okei, okei, ei sille käyttäjälle nyt roottejä sopisi antaa  :o, vaan se tulisi omalle palvelimelle ihan hyötykäyyttön. :D
edit: Huomasi sartkastisuutta viestissäsi :o
« Viimeksi muokattu: 24.03.09 - klo:15.24 kirjoittanut simppeli »

eDIT

  • Käyttäjä
  • Viestejä: 319
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #158 : 04.04.09 - klo:20.40 »
Seuraava pätkä tarkastaa mahdolliset uudet kommentit IRC-Galleriassa. Vaatii curl:in.

Koodia: [Valitse]
#!/bin/bash

TUNNUS=
SALASANA=
##
if [ -z "`which curl`" ]; then
echo "Tarvitset curl:in voidaksesi käyttää tätä skriptiä"
exit 0
fi

if [ -z $TUNNUS ]; then
echo "Ei tunnusta, lopetetaan"
exit 0
else
if [ -z $SALASANA ]; then
echo "Ei salasanaa, lopetetaan"
exit 0
fi
fi
##

curl -d login=$TUNNUS -d passwd=$SALASANA -c /tmp/.igcookie -b /tmp/.igcookie http://irc-galleria.net/login.php
curl -c /tmp/.igcookie -b /tmp/.igcookie http://irc-galleria.net/index.php -o /tmp/.igindex > /dev/null 2>&1
LOGOUTURL=`cat /tmp/.igindex | grep mmlogout | sed 's/.*href="//g' | sed 's/".*//g' | sed 's/^/http:\/\/irc-galleria.net/g'`
CHKCOMMENTS=`cat /tmp/.igindex | grep mmnewcomments | sed 's/.*placeholder">//g' | sed 's/<\/span>.*//g'`

if [ -z $CHKCOMMENTS ]; then
echo "Sinulle ei ole uusia kommennteja."
else
echo "Sinulle on $CHKCOMMENTS uutta kommenttia."
fi

curl -c /tmp/.igcookie -b /tmp/.igcookie $LOGOUTURL > /dev/null 2>&1
rm /tmp/.igindex
rm /tmp/.igcookie

exit 0

Tunnuksien ja salasanojen scriptiin tallentaminen omalla vastuulla.

adjektiivi

  • Käyttäjä
  • Viestejä: 315
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #159 : 04.04.09 - klo:21.57 »
Saisiko jotenkin scriptin että: avaa firefoxin, pitää päällä pari sekunttia, samuttaa firefoxin, käynnistää hetken päästä taas firefoxin uudelleen ja sitä rataa.. ja tekisi tätä vaikka niin pitkään kuin toisin sanotaan  ???