Gå til innhold

Legg inn dine nyttige bash script/programmer her!


Gjest Slettet+432

Anbefalte innlegg

Gjest Slettet+432
Skrevet (endret)

Halla folks..

 

Her kan dere legge inn nyttige bash script og programmer som dere har laget selv, eller har funnet, samme det :)

 

 

Legger ved koden til et slags backupscript som komprimerer hjemmemappen (laget for OS X, er bare å endre noen baner så funker den på GNU/Linux). Så sender den den komprimerte filen til min rsync server, og etter det sletter den den komprimerte filen fra den lokale maskinen.

 

#! /bin/bash
# Backupscript laget av _RebooT_
# whatever.... gitt ut under GPL.... 

# Komprimerer sikkerhetskopi med tar
echo Komprimerer sikkerhetskopi med tar...
tar -czf aleksander.`date +%a`.tgz /Users/aleksander/*

# Sender komprimerte filer og mapper til rsync serveren med rsync klienten...

echo Sender hjemmemappen din til rsync serveren...
rsync -alW --delete --stats aleksander.`date +%a`.tgz sysfile::aleksander

echo Filene er naa overfort til sysfile.

# Slette komprimert fil etter overforing

echo Sletter filen som ble sendt...
rm -rf aleksander.`date +%a`.tgz

 

Merk: For at man skal kunne skrive sysfile::aleksander (rsync) istedenfor 192.168.1.8::aleksander så må man legge til 192.168.1.8 som sysfile (i mitt tilfelle) i /etc/hosts

 

Og forresten, jeg suger i bash, så bare rett på scriptet mitt om det er noe galt der :)

Endret av Slettet+432
Videoannonse
Annonse
Gjest Slettet+432
Skrevet

Hehe, litt ironisk det med copyright, ja :) hehe. Måtte bare se hva dere sa ;) Gjør hva dere vil med det.

 

Arntfinn: Ja, det gir navnet på ukedagen. Men tingen er at den greia kjøres uansett samme dag som hjemmemappa ble komprimert, siden det skjer i samme scriptet...

Skrevet

Bash & perl script for å pinge en host som en vet er oppe (og tillater ping) og evt. fornye gatewayen sin internett lease. Nyttige scripts for oss late studenter på SiO hybler med unix maskiner som ikke orker/gidder å telnet'e inn til gatewayen hver N'te dag for å fornye internett forbindelsen :D

 

telnet.sh

#!/bin/sh

#Del 1 av 2

perl=/usr/bin/perl
telnet_script=/home/vecna/telnet.pl
log=/home/vecna/telnet.log

ping -c2 $1 > /dev/null

#Sjekk om ping packet loss er 100%
if [ $? -gt 0 ]

       then {
               echo Gateway auth forsøk @ `/bin/date` >> $log
               $perl $telnet_script
       }
fi

 

 

telnet.pl Scriptet bruker pakken Net::Telnet, kan installeres ved å kjøre perl -MCPAN -e "install Net::Telnet"

#Del 2 av 2
#Telnet inn til gatwayen for å fornye internett leasen

$log = /home/vecna/telnet.dump

use Net::Telnet;
 $gateway = new Net::Telnet ( Timeout=>30,
                             Dump_Log => "$log",
                             Errmode=>'die');
 $gateway->open('GATEWAY_IP');
 $gateway->login('BRUKER', 'PASSORD');
 $gateway->close;
exit;

Gjest Slettet+432
Skrevet

Hadde vært kult med et script som oppdaterte dyndns.org greiene automatisk, sånn at man slipper å gå inn på sidene deres hele tiden... :) noen som vet noe?

Skrevet

Noe ala dette?


#!/bin/bash

# your internet interface
inet_if=eth1
# curl utility
curl=/usr/bin/curl
# your update url
url=http://freedns.afraid.org/dynamic/update.php?din_key_her
# cache file for ip address
ip_cache=/tmp/ipaddr.cache

current_ip=`ifconfig ${inet_if} | sed '/.*inet addr:/!d;s///;s/ .*//'`
old_ip=`<$ip_cache`
[ $current_ip != $old_ip ] && \
 $curl -s $url && \
 echo $current_ip >$ip_cache
exit 0

 

Husk å touch /tmp/ipaddr_cache først. Forutsetter at du har ekstern ip på maskinen du kjører dette på (bruker Passthrough på NGT routern selv). Denne funker fint for afraid.org FreeDNS'en, vet ikke hvordan det er med dynDNS, men regner med at det er noe av samme ulla?

Gjest Slettet+432
Skrevet

Ja, dynDNS har noe slikt, de og. Serveren min sitter bak netopia routeren da... Vil det ikke funke da?

Skrevet

Som sagt, du er nødt til å ha din faktiske eksterne IP på et interface på maskinen (altså, ikke bak NAT). Har du Netopia 3351 kan du bruke passthrough (denne sender alle pakker som ikke blir stoppet av filtre på routern direkte til en annen maskin, resultater er at du kan for eksempel bruke en dedikert linux boks til router/firewall etc etc), sjekk guiden her - bare husk å forandre på filterne!

 

Om du ikke vil styre med det, bør det være en grei sak å bruke sider som http://www.whatismyip.com/, og bare parse ut ip'en din.

Gjest Slettet+432
Skrevet

eh, okei... har ikke peiling på hvordan jeg gjør det da, men whatever... kan jo prøve...

Skrevet

Google er din venn, og regexp er gøy ;)

Her er en versjon som "burde" virke, bare å bytte ut update URL'en. Jeg gir ingen garantier riktignok!

 


#!/bin/bash

# curl utility
curl=/usr/bin/curl
# your update url
url=http://freedns.afraid.org/dynamic/update.php?xxxxxxxxxxxxxxxxxxxxxxx
# cache file for ip address
ip_cache=/tmp/ipaddr.cache

current_ip=`curl -s http://www.whatismyip.com | sed '/<h1>Your IP  Is /!d;s///;s/<\/h1>//'`
old_ip=`<$ip_cache`
[ $current_ip != $old_ip ] && \
 $curl -s $url && \
 echo $current_ip >$ip_cache
exit 0 

Gjest Slettet+432
Skrevet

Takker...

 

!!!!!!!!!!!!!!!!!!!!!!!!

!  DO NOT reverse engineer any of the forms on this page.  DO NOT    |

|  access this page in any automated way.  All automated access to  |

|  our systems must go through the interfaces described at:          |

|                http://www.dyndns.com/developers/                  !

|  Any other automated access WILL result in account termination,    |

|  blocking of your user-agent, or any other remedies we deem        |

|  appropriate.                                                      |

!!!!!!!!!!!!!!!!!!!!!!!!

 

Dette stod i kildekoden. Hehe, tror ikke jeg skal prøve det. Men fant ut at jeg kan bruke et program for OS X istedenfor :)

  • 2 uker senere...
Skrevet

Vet, ikke om dette er typen script du er ute etter, men jeg bruker i alle fall dette nesten hver dag!!

Krever litt ny versjon av rhythmbox, da tidligere vesjoner hadde --volume-up og --volume-down i stedet for --set-volume.

#!/bin/bash
if test -z $1 || test -z $2
then
 echo "Bruk: $0 <tid til dimming> <timer som skal soves> [minutter som skal soves]"
else
 tid=$[ $2 * 60 ]
 if test ! -z $3
 then
   tid=$[ $tid + $3 ]
 fi
 echo "Ok, musikk dimmes om $1 minutter og starter igjen om $tid minutter."
 sleep $1m
 echo "Musikken dimmes."
 i=100
 while [ $i -gt 0 ]
 do
   i=$[ $i - 1 ]
   j=$(echo $i/100|bc -l)
   sleep 2s
   rhythmbox --set-volume=$j
 done
 rhythmbox --play-pause
 echo "Sov godt !!"
 sleep $(echo $tid)m
 echo "God morgen :)"
 rhythmbox --play-pause
 while [ $i -lt 100 ]
 do
   i=$[ $i + 1 ]
   j=$(echo $i/100|bc -l)
   sleep 2s
   rhythmbox --set-volume=$j
 done
fi

Skrevet (endret)

Dette er ikke noe jeg har laget selv, men uansett er utrolig nyttig script!

bash_completion, skal bare lastes ned og pakkes ut til et passende sted, så må man legge til følgende linje i ~/.bashrc:

 

source /path/to/bash_completion

Nå far man både atocomple gjennom scp, smart autocomplete som velger filer med riktig filnavn. F.eks vil xpdf <TAB>, velge pdf-filen selv om det er mange andre filer der osv:)

 

EDIT: bilde som viser noen flere funksjoner:

19041.jpg

Endret av LessThanJake
  • 1 måned senere...
Skrevet
Dette er ikke noe jeg har laget selv, men uansett er utrolig nyttig script!

bash_completion, skal bare lastes ned og pakkes ut til et passende sted, så må man legge til følgende linje i ~/.bashrc:

 

source /path/to/bash_completion

Nå far man både atocomple gjennom scp, smart autocomplete som velger filer med riktig filnavn. F.eks vil xpdf <TAB>, velge pdf-filen selv om det er mange andre filer der osv:)

 

EDIT: bilde som viser noen flere funksjoner:

19041.jpg

5122837[/snapback]

 

Dette er faktisk meget nyttig funksjonalitet. Jeg kan også anbefale å prøve et annet shell som for eksempel zsh, som gjør det samme.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...