Početak›Forumi›Linuks distribucije›Mandriva›Softver›pomoc oko bash skripte.
- This topic has 4 odgovora, 2 glasa, and was last updated 14 years, 6 months ranije by paralizer.
-
AutorČlanci
-
26. septembar 2009. u 5:33 am #11482paralizerUčesnik
Nasao sam ovu skriptu koja slizi za dodajenje domaine u DNS-a.
Skripa je sledeca
========================================
#!/bin/bash
# A Bash shell script to create BIND ZONE FILE.
# Tested under BIND 8.x / 9.x, RHEL, DEBIAN, Fedora Linux.
# ————————————————————————-
# Copyright (c) 2002,2009 Vivek Gite
# This script is licensed under GNU GPL version 2.0 or above
# ————————————————————————-
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ————————————————————————-
# Examples:
# ./mkzone.sh example.com default-www-IP-address
# ./mkzone.sh cyberciti.biz 74.12.5.1
# ————————————————————————-
# Last updated on: Mar/24/2007 – Fixed a few bugs.
# ————————————————————————-
DOMAIN=”$1″
WWWIP=”$2″if [ $# -le 1 ]
then
echo “Syntax: $(basename $0) domainname http://www.domain.ip.address [profile]”
echo “$(basename $0) example.com 1.2.3.4″
exit 1
fi# get profile
PROFILE=”skeleton_zone”
[ “$3” != “” ] && PROFILE=”$3″SERIAL=$(date +”%Y%m%d”)01 # Serial yyyymmddnn
# load profile
source “$PROFILE”# set default ns1
NS1=${NAMESERVERS[0]}###### start SOA ######
echo “; WwwAcct 2.5”
echo “; Zone file for $DOMAIN”
echo “; \$TTL ${TTL}”
echo “@ 144000 IN SOA ns1.neki_dns.com. root.ns1.neki_dns. (”
echo ” ${SERIAL} ; Serial yyyymmddnn”
echo ” ${REFRESH} ; refresh, seconds”
echo ” ${RETRY} ; Retry secconds”
echo ” ${EXPIER} ; Expire secconds”
echo ” ${MAXNEGTIVE}) ; minimum secconds”
echo “”###### start Name servers #######
# Get length of an array
#tLen=${#NAMESERVERS[@]}# use for loop read all nameservers
#for (( i=0; i/dev/null # keep this line
# Uncomment or add A recoreds as per your requirments
echo “ftp $ATTL IN A 333.333.333.333”
echo “www $ATTL IN A 333.333.333.333”
}
===================================================================Skripta se izvrsuje na sledec nacin, na pr. ako zelim da imam domain test.com za IP 111.111.111.111
ova je komanda -> /root/mkzone.sh test.com 111.111.111.111 > /var/named/test.com
treba mi da dodam da pri izvrsenje ove komande isto tako se upise i ovo.
——————————————————————————prvo treba mi da se u /etc/named.conf doda ova linija na kraju -> include “/etc/named.zones/ime_gazde” tog domaina
i drugo da kreira fajl “/etc/named.zones/ime_gazde” i u nejga ubaci ovo:
zone “test.com” IN {
type master;
file “/var/named/test.com.db”;
};znaci komanda bi dosla nesto kao -> /root/mkzone.sh test.com 111.111.111.111 ime_gazde > /var/named/test.com
Aj kada dodam komanda koja treba da zapise include “/etc/named.zones/ime_gazde” tog domaina ne radi, jer koliko ja znam bash (a ne znam puno) ima gazde je treca promenliva $3, al u skriptu vec ima $3 itn…
Hvala unapred.
26. septembar 2009. u 8:27 am #81074Puppet_MasterUčesnikpromenljiva $3 je ime profila koje je opciono (argument br 3) , u tvom slucaju bi ime profila onda postala promeljniva $4 (argument br 4), a ovo novo cudo koje hoces da dodas bi bio argument broj 3 kome pristupas sa $3 u skripti
jednostavno resenje za ovaj problem je da sva pojavljivanja $3 u skripti zamenis sa $4 i da onda da bi dobio ime_gazde ili kako li ga vec nazva dobijes sa $3 i onda dodaj vec naredbe koje si hteo
26. septembar 2009. u 9:22 am #81075paralizerUčesnikPokusao sam i to al nece.
Znaci kada ovo ubacim IMEGAZDE=”$4″
i posle na pr, dodam, na kraju skripte
cat $IMEGAZDE >> /etc/named.conf
i ivrsim ovu komandu-> /root/mkzone.sh test.com 111.111.111.111 asd > /root/test.com gde “asd” je ime gazde dobijem ovo:
/root/mkzone.sh: line 34: asd: No such file or directory
A line 34 je ova-> source “$PROFILE”
26. septembar 2009. u 4:36 pm #81076Puppet_MasterUčesnik/root/mkzone.sh test.com 111.111.111.111 asd > /root/test.com gde
ovde je $1 test.com
$2 111.111.111.111
$3 asdtako da kao sto sam ti rekao uzmes osnovnu skripti nadjes gde psie $3 i stavis $4
a onda stavis
IMEGAZDE=”$3″
i koristis onda lepo $IMEGAZDE gde vec treba
javi ako ne uspe ponovo
26. septembar 2009. u 6:39 pm #81077paralizerUčesnikMa neeemaaamm poima, doso drugar programer i sredio sve. Sda radi. 🙂 Ipak hvala na pomoci.
-
AutorČlanci
Forum ‘Softver’ je zaključan za nove teme i odgovore.