Автор Тема: Въпрос за скрипт  (Прочетена 837 пъти)

keremidko

  • Напреднали
  • *****
  • Публикации: 83
    • Профил
Въпрос за скрипт
« -: Jul 12, 2006, 09:43 »
В смисъл скрипта е следния:
vim /home/USER/.mac
в него има следното:
/etc/init.d/networking stop
ifconfig ethХ hw ether хх:хх:хх:хх:хх:хх
/etc/init.d/networking start

та въпроса ми е като добавя:
vim /etc/network/interfaces

как да добавя на еди кой си ред какво да промени? демек там кадето е IP-to да го смени с друго


П.С: това го правя за улеснение да напиша само:
sh /home/USER/.mac (или /home/USER/.mac) и да се направи всичко за смяна на мак и ип ...и т.н а не да пиша 20 реда.



Активен

ЖиВей така че когато умреш и гробаря да жали за теб

sdr

  • Напреднали
  • *****
  • Публикации: 655
    • Профил
Въпрос за скрипт
« Отговор #1 -: Jul 12, 2006, 11:05 »
Пробвай с sed или с просто копиране  от нещо.вкъщи или нещо.наработа в нещо.системно
Активен

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Въпрос за скрипт
« Отговор #2 -: Jul 12, 2006, 11:22 »
Примерен код

#!/bin/bash
Променлива=някакъв.адрес

/bin/cat << ENDFILE >>  /etc/network/interfaces
..... .... .... ..... .... ....
..... .... .... ..... .... ....
 address $Променлива
..... .... .... ..... .... ....
..... .... .... ..... .... ....

ENDFILE



Там където е многоточието е съдържанието на файла, а мястото където е променливата е мястото, където желаеш да бъде съдържанието на тази променлива.

Вместо "Променлива=някакъв.адрес" можеш  да напишеш "echo -ne "Въведете адреса: " ; read Променлива" – тогава скриптът ще пита за адреса.

Разбира се името на променливата трябва да е с латински букви (в противен случай ще ти изведе съобщение за грешка и няма да работи).



Активен

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Въпрос за скрипт
« Отговор #3 -: Jul 12, 2006, 11:26 »
Ето ти един пример как се записва конфигурационния файл на Slackware в моя скрипт за настройка на мрежата:

Примерен код

#
############################################################################
#           The rc.inet1.conf file.
############################################################################
#

# If we're doing loopback, we don't want 127.0.0.1 and 255.255.255.0 in
# rc.inet1.conf... it's better to leave the values null.  However, since
# we use the IP in other places, we need to make a copy for here.
#RCIPCOPY=$IPADDR
#RCMASKCOPY=$NETMASK
#if [ "$RCIPCOPY" = "127.0.0.1" ]; then
#  RCIPCOPY=""
#  RCMASKCOPY=""
#fi

# echo "Creating /$RC..."
/bin/cat << ENDFILE > $RC
# /etc/rc.d/rc.inet1.conf
#
# This file contains the configuration settings for network interfaces.
# If USE_DHCP[interface] is set to "yes", this overrides any other settings.
# If you don't have an interface, leave the settings null ("").

# You can configure network interfaces other than eth0,eth1... by setting
# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset
# or empty, it is assumed you're configuring eth<interface>.

# Several other parameters are available, the end of this file contains a
# comprehensive set of examples.

# =============================================================================
ENDFILE

if [ "$all_eth_devices" = "" ]; then

/bin/cat << ENDFILE >> $RC
# Config information for eth0:
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]=""
DHCP_HOSTNAME[1]=""

# Config information for eth2:
IPADDR[2]=""
NETMASK[2]=""
USE_DHCP[2]=""
DHCP_HOSTNAME[2]=""

# Config information for eth3:
IPADDR[3]=""
NETMASK[3]=""
USE_DHCP[3]=""
DHCP_HOSTNAME[3]=""

ENDFILE

else

for eth_dev in $all_eth_devices; do

/bin/cat << ENDFILE >> $RC

# Config information for eth${eth_dev}:
IPADDR[${eth_dev}]="${arr_IPADDR[${eth_dev}]}"
NETMASK[${eth_dev}]="${arr_NETMASK[${eth_dev}]}"
USE_DHCP[${eth_dev}]="${arr_USE_DHCP[${eth_dev}]}"
DHCP_HOSTNAME[${eth_dev}]="${arr_DHCP_HOSTNAME[${eth_dev}]}"

ENDFILE

done

fi

/bin/cat << ENDFILE >> $RC

# Default gateway IP address:
GATEWAY="$GATEWAY"

# Change this to "yes" for debugging output to stdout.  Unfortunately,
# /sbin/hotplug seems to disable stdout so you'll only see debugging output
# when rc.inet1 is called directly.
DEBUG_ETH_UP="no"

## Example config information for wlan0.  Uncomment the lines you need and fill
## in your info.  (You may not need all of these for your wireless network)
#IFNAME[4]="wlan0"
#IPADDR[4]=""
#NETMASK[4]=""
#USE_DHCP[4]="yes"
#DHCP_HOSTNAME[4]="icculus-wireless"
#DHCP_KEEPRESOLV[4]="yes"
#DHCP_KEEPNTP[4]="yes"
#DHCP_KEEPGW[4]="yes"
#DHCP_IPADDR[4]=""
#WLAN_ESSID[4]=BARRIER05
#WLAN_MODE[4]=Managed
##WLAN_RATE[4]="54M auto"
##WLAN_CHANNEL[4]="auto"
##WLAN_KEY[4]="D5AD1F04ACF048EC2D0B1C80C7"
##WLAN_IWPRIV[4]="AuthMode=WPAPSK EncrypType=TKIP WPAPSK=7B1ABEEB5D197741923ED26727569C365E31212096A0EAFAD563B268BAD01CAF TxRate=0"
#WLAN_WPA[4]="wpa_supplicant"
#WLAN_WPADRIVER[4]="ndiswrapper"

## Some examples of additional network parameters that you can use.
## Config information for wlan0:
#IFNAME[4]="wlan0"              # Use a different interface name nstead of
                                # the default 'eth4'
#HWADDR[4]="00:01:23:45:67:89"  # Overrule the card's hardware MAC address
#MTU[4]=""                      # The default MTU is 1500, but you might need
                                # 1360 when you use NAT'ed IPSec traffic.
#DHCP_KEEPRESOLV[4]="yes"       # If you dont want /etc/resolv.conf overwritten
#DHCP_KEEPNTP[4]="yes"          # If you don't want ntp.conf overwritten
#DHCP_KEEPGW[4]="yes"           # If you don't want the DHCP server to change
                                # your default gateway
#DHCP_IPADDR[4]=""              # Request a specific IP address from the DHCP
                                # server
#WLAN_ESSID[4]=DARKSTAR         # Here, you can override _any_ parameter
                                # defined in rc.wireless.conf, by prepending
                                # 'WLAN_' to the parameter's name. Useful for
                                # those with multiple wireless interfaces.
#WLAN_IWPRIV[4]="AuthMode=WPAPSK EncrypType=TKIP WPAPSK=thekey TxRate=0"
                                # Some drivers require a private ioctl to be
                                # set through the iwpriv command. If more than
                                # one is required, you can place them in the
                                # IWPRIV parameter (space-separated, see the
                                # example).
ENDFILE
chmod 644 $RC


Целият код: http://vslivecd.openfmi.net/viewtopic.php?t=57

Четива по въпроса може да намериш тук (раздел bash):
http://vslivecd.openfmi.net/linuxdoc/ (огледало: http://d.interbild.net/vstoykov/linuxdoc/)



Активен

keremidko

  • Напреднали
  • *****
  • Публикации: 83
    • Профил
Въпрос за скрипт
« Отговор #4 -: Jul 12, 2006, 13:19 »
а аз не съобразих че по този начин настройките ще се запазят сега се сещам а ако добавя редовете с команди демек само не помян как бяха:
ifconfig ...ip
ако някой може да ми каже тази за промяната временно на ип до рестарт май с ифконфиг беше и само след рестарт изпълнявам файла в смисъл ще го сложа като команда преди да пусне интерфейсите. След като съм въвел мак-а. Трябва ми само командата за времена смяна на ип беше нещо ifconf... и става:

/etc/init.d/networking stop
ifconfig ethХ hw ether хх:хх:хх:хх:хх:хх
тук командата за временна смяна на ИП
/etc/init.d/networking start



Активен

ЖиВей така че когато умреш и гробаря да жали за теб