LINUX.ORG.RU

Помогите новичку пожалуйста :)


0

0

Раньше с линуксом не работал, сейчас необходимо по работе. Помогите пожалуйста нужно модифицировать скрипт

Вот текст скрипта

#!/bin/bash export PATH=$PATH:/sbin LOG_FILE=«/var/log/ou-reg»

# Make sure only root can run our script if [ «$(id -u)» != «0» ]; then echo «This script must be run as root» 1>&2 exit 1 fi

NETSTAT=`/usr/bin/which netstat` GREP=`/usr/bin/which grep` HEAD=`/usr/bin/which head` AWK=`/usr/bin/which awk` IFCONFIG=`/usr/bin/which ifconfig` CAT=`/usr/bin/which cat` CUT=`/usr/bin/which cut` HEAD=`/usr/bin/which head` LSPCI=`/usr/bin/which lspci` SED=`/usr/bin/which sed` WGET=`/usr/bin/which wget` FIND=`/usr/bin/which find`

# Get the proxy settings if [ -e /etc/ou-proxy ] then    source /etc/ou-proxy    export http_proxy=$PROXY fi

KEY=`$CAT /etc/ou-key` DEF_IF=`$NETSTAT -r | $GREP default| $HEAD -1| $AWK '{ print $8 }'` MAC_ADDRESS=`$IFCONFIG $DEF_IF| $GREP HWaddr|$AWK '{print $5}'` if [ ! -n «$MAC_ADDRESS» ] then    MAC_ADDRESS=«00:00:00:00:00:00» fi REPORTING_URL="http://www.spohelp.ru/computer_reports" # Production CPU=`$CAT /proc/cpuinfo |$GREP model\ name| $CUT -f 2 -d:|$HEAD -1` OS_RELEASE=`$CAT $($FIND /etc/*release* -type f -size +1c)|$HEAD -1` RAM=`$CAT /proc/meminfo |$GREP MemTotal|$AWK '{ print $2 }'` VIDEOCARD=`$LSPCI |$GREP VGA|$CUT -f 3 -d:` SIGN=`/usr/bin/sign_ou $MAC_ADDRESS` echo >> $LOG_FILE echo "--------------------------------" >> $LOG_FILE echo «Start new report» >> $LOG_FILE /bin/date >> $LOG_FILE echo $KEY >> $LOG_FILE echo $DEF_IF >> $LOG_FILE echo $MAC_ADDRESS >> $LOG_FILE echo $REPORTING_URL >> $LOG_FILE echo $CPU >> $LOG_FILE echo $OS_RELEASE >> $LOG_FILE echo $RAM >> $LOG_FILE echo $VIDEOCARD >> $LOG_FILE echo $SIGN >> $LOG_FILE

KEY=$(echo «$KEY» | $SED -f /usr/share/doc/spo-reg/urlencode) MAC_ADDRESS=$(echo «$MAC_ADDRESS» | $SED -f /usr/share/doc/spo-reg/urlencode) OS_RELEASE=$(echo «$OS_RELEASE» | $SED -f /usr/share/doc/spo-reg/urlencode) CPU=$(echo «$CPU» | $SED -f /usr/share/doc/spo-reg/urlencode) RAM=$(echo «$RAM» | $SED -f /usr/share/doc/spo-reg/urlencode) VIDEOCARD=$(echo «$VIDEOCARD» | $SED -f /usr/share/doc/spo-reg/urlencode) SIGN=$(echo «$SIGN» | $SED -f /usr/share/doc/spo-reg/urlencode)

$WGET -O - --post-data=«key=$KEY&mac_address=$MAC_ADDRESS&os_release= \ $OS_RELEASE&cpu=$CPU&ram=$RAM&videocard=$VIDEOCARD&signature=$SIGN» \ --proxy-user=$USER --proxy-password=$PASSWORD $REPORTING_URL >> $LOG_FILE -o /dev/null

Собственно он собирает и отправляет сведения о железе, нужно чтобы он отправлял не собранные а заложенные сведения типо из файла. т.е Присваиваем переменным нужные значения и он их отправляет, как то так.

Зарание благодарен всем кто не оставляет начинающих в беде :))

файл настроек (/etc/ou-settings)

#settings
MAC_ADDRESS='ваш_мак_адрес'
OS_RELEASE='ваша ось'
CPU=''
RAM=''
VIDEOCARD=''

ваш скрипт:

#!/bin/bash
export PATH=$PATH:/sbin
LOG_FILE="/var/log/ou-reg"

# Make sure only root can run our script 
if [ "$(id -u)" != "0" ]; then 
  echo "This script must be run as root" 1>&2 
  exit 1
fi

WGET=`/usr/bin/which wget`
# Get the proxy settings
if [ -e /etc/ou-proxy ] then
    source /etc/ou-proxy
    export http_proxy=$PROXY
fi
KEY=`$CAT /etc/ou-key`

. /etc/ou-settings

SIGN=`/usr/bin/sign_ou $MAC_ADDRESS`

KEY=$(echo "$KEY" | $SED -f /usr/share/doc/spo-reg/urlencode)
MAC_ADDRESS=$(echo "$MAC_ADDRESS" | $SED -f /usr/share/doc/spo-reg/urlencode)
OS_RELEASE=$(echo "$OS_RELEASE" | $SED -f /usr/share/doc/spo-reg/urlencode)
CPU=$(echo "$CPU" | $SED -f /usr/share/doc/spo-reg/urlencode)
RAM=$(echo "$RAM" | $SED -f /usr/share/doc/spo-reg/urlencode)
VIDEOCARD=$(echo "$VIDEOCARD" | $SED -f /usr/share/doc/spo-reg/urlencode)
SIGN=$(echo "$SIGN" | $SED -f /usr/share/doc/spo-reg/urlencode)

$WGET -O - --post-data="key=$KEY&mac_address=$MAC_ADDRESS&os_release= \ $OS_RELEASE&cpu=$CPU&ram=$RAM&videocard=$VIDEOCARD&signature=$SIGN" \ --proxy-user=$USER --proxy-password=$PASSWORD $REPORTING_URL >> $LOG_FILE -o /dev/null

Как-то так

iSage ★★★★ ()
Ответ на: комментарий от iSage

Хм, не поправил при копировании. последняя строка там выглядит как

$WGET -O - --post-data="key=$KEY&mac_address=$MAC_ADDRESS&os_release= \
 $OS_RELEASE&cpu=$CPU&ram=$RAM&videocard=$VIDEOCARD&signature=$SIGN" \
 --proxy-user=$USER --proxy-password=$PASSWORD $REPORTING_URL >> $LOG_FILE -o /dev/null 

iSage ★★★★ ()
Ответ на: комментарий от newnaicon

if [ -e /etc/ou-proxy ] then заменить на if [ -e /etc/ou-proxy ]; then

iSage ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.