Dve konkretne skripte

Ukoliko imate problema sa instalacijom ili korišćenjem nekog programa, ovo je pravo mesto za vaše pitanje.

Moderators: Slackmuz, Urednik

Post Reply

Poznata ličnost
Poznata ličnost
offline

Posts: 129
Joined: 01 May 2012, 23:26
Location: 42,69 - 22,16

Post Napisano: 18 Feb 2013, 11:11


Е овако,

потребне су ми две ствари.

1) желим да направим скрипту која ће се покретати приликом стартовања Slackware-a. Команду ћу ја убацити, пошто је врло проста. Рецимо нешто овако. Да ли би могао само заменити команде, мојим командама.

#!/bin/sh
exec xmodmap -e "pointer = 1 2 3 4 5 6 7 9 8" &
exec imwheel -k -b "8 9" &
exec $REALSTARTUP

2) Треба ми програм који ће едитовати HOSTNAME приликом гашења Slackware-a, и то тако ште ће по случајном узорку мењати име рачунара сваки пут када се овај буде гасио.



Poznata ličnost
Poznata ličnost
offline

Posts: 129
Joined: 01 May 2012, 23:26
Location: 42,69 - 22,16

Post Napisano: 18 Feb 2013, 11:14


Прва скрипта више није актуелна. Ради овај горњи пример . Према томе :
#!/bin/sh
exec моја команда
exec $REALSTARTUP

Остаје актуелна ова друга скрипта



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 19 Feb 2013, 12:01


1) možeš potrebne komande dodati u /etc/rc.d/rc.local. Nema potrebe za posebnim skriptama zbog dve-tri linije.

2) za ovo drugo će poslužiti modifikacija primera iz Advanced Bash Scripting Guide:

Code: Select all

#!/bin/bash

HOSTS="homer.simpsons
mardge.simpsons
bart.simpsons
lisa.simpsons
maggie.simpsons"

HOST=($HOSTS)

HOSTSNO=${#HOST[*]}

echo -n "${HOST[$((RANDOM%HOSTSNO))]}" > /etc/HOSTNAME
Edit:
Ovo će zahtevati bash. Mislim da neće raditi pod ash ili zsh. Sadrži dosta "bašizama". Pada mi na pamet kako bi se to moglo odraditi i portabilnije, ali nemam trenutno vremena da se igram s time.

Edit 2:
I ovo možeš dodati u /etc/rc.d/rc.local_shutdown (naravno, bez prve linije).

Ili odvojiti u posebnu skriptu. A zatim je dodati u /etc/rc.d/rc.local_shutdown ovako:

Code: Select all

if [ -x /etc/rc.d/rc.mojaskripta ];then
   /etc/rc.d/rc.mojaskripta
fi
A zatim je potrebno da je učiniš izvršivom i ona će se izvršavati pri svakom shutdownu. Ako poželiš da je isključiš, samo skini izvršni bit. Naravno, možeš je nazvati i drugačije. Ovo je samo primer.



Poznata ličnost
Poznata ličnost
offline

Posts: 129
Joined: 01 May 2012, 23:26
Location: 42,69 - 22,16

Post Napisano: 20 Feb 2013, 10:53


OVO JE rc.PROMENA_HN
#!/bin/bash
HOSTS="1
2
3
4"

HOST=($HOSTS)
HOSTSNO=${#HOST[*]}
echo -n "${HOST[$((RANDOM%HOSTSNO))]}" > /etc/HOSTNAME

a ovo je rc.PROMENA_MA
#!/bin/sh
exec moja_komanda
exec $REALSTARTUP

To sam stavio u dve zasebne skripte u rc.d direktorijumu. A zatim sam u rc.local_shutdown upisao sledece :

if [ -x /etc/rc.d/rc.PROMENA_MA ];then
/etc/rc.d/rc.PROMENA_MA
fi

if [ -x /etc/rc.d/rc.PROMENA_HN ];then
/etc/rc.d/rc.PROMENA_HN
fi

Rezultat toga je da prva skripta i dalje radi, dok ova skripta sa promenom imena ne radi.
Mozda sam neki korak izostavio ili negde nesto pogresno upisao.?



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 20 Feb 2013, 11:19


Format imena hosta nije ispravan. Format je imehosta.domen. Recimo, podrazumevani domen na slacku je darkstar. Ime hosta specifikuješ prilikom instalacije, korišćenjem netconfig ili ručno (komandnom hostname ili izmenom /etc/HOSTNAME). Hostname je i ono što će se prikazati u shell promptu (korisnik@imehosta).

Ukratko: umesto brojeva je potrebno da koristiš "imehosta.domen". Kao u gornjem primeru sa Simpsonima.



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 114
Joined: 14 Jan 2013, 09:52
Location: /dev/hda1, etc
Contact:

Post Napisano: 20 Feb 2013, 14:23


A sta mislite da se ubaci i promena ip i mac adrese prilikom random $hostname?

Code: Select all

ifconfig eth0 down hw ether nova_mac_adresa && ifconfig eth0 up && ifconfig eth0 nova_ip_adresa netmask 255.255.255.0 up && /bin/hostname novo_ime_hosta
Znaci da $host sadrzi && ovo gore (up) :) :) :)

Sve u svemu, mudre zamisli furate ;)



Poznata ličnost
Poznata ličnost
offline

Posts: 129
Joined: 01 May 2012, 23:26
Location: 42,69 - 22,16

Post Napisano: 20 Feb 2013, 16:33


MOJ_trenutni_HOSTNAME.example.net

Kod mene je to trenutno upisano u HOSTNAME.
Da li to znači da treba da upišem :

1.example.net ?

Pitam, jer ta sintaksa ne radi kod mene.



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 114
Joined: 14 Jan 2013, 09:52
Location: /dev/hda1, etc
Contact:

Post Napisano: 20 Feb 2013, 16:42


i njega tutni u varijablu :)



Administrator
Administrator
offline
User avatar

Posts: 877
Joined: 25 May 2008, 10:44
Location: Valjevo, Srbija

Post Napisano: 20 Feb 2013, 16:42


Ne mora example.net. To je samo postavljeno kao primer. Da je računar vidljiv na net-u i da je deo stvarnog domena mogao bi upisati pravi naziv domena (masina.sl13_site.com recimo). Nije pogrešno ni upisati host.ime_domena.local jer se radi o lokalnom domenu :)
nije važno samo raditi ono što voliš...važnije je voleti ono što radiš



Poznata ličnost
Poznata ličnost
offline

Posts: 129
Joined: 01 May 2012, 23:26
Location: 42,69 - 22,16

Post Napisano: 20 Feb 2013, 23:18


Ok. Само да напоменем, да би овај други пример радио име домена мора бити фиксно, ако некоме затреба. Тј. сви чланови фамилије Симпсон морају да имају исто презиме :azn: .

Нисам веровао да је могуће да урадимо промену HOSTNAME. Чак сам хтео, одмах по постављању питања и да га обришем, мислећи да на овом форуму нећу добити одговор.

Браво, другари, ако смем тако да се изразим. :beer:


Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests