From: Laurent Mazet Date: Wed, 16 Sep 2015 15:23:17 +0000 (+0200) Subject: move script directory into master tree X-Git-Tag: debian_7.8.5~7 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=84523910649b50272f5a8693bf7c5cdb73ad1353;p=debian6500.git move script directory into master tree --- diff --git a/master/opt/script/change_configuration.sh b/master/opt/script/change_configuration.sh new file mode 100755 index 0000000..ee4f32c --- /dev/null +++ b/master/opt/script/change_configuration.sh @@ -0,0 +1,168 @@ +#!/bin/bash +# ============================================================================ +# +# Copyright (C) THALES. All rights reserved +# Author: Laurent Mazet +# + +# Date : 10/10/2013 +# +# 05/11/2013 : LMa configuration des timezone Zulu(GMT) et Paris +# Desactivation de pam pour ssh +# ============================================================================ + +# Switch configuration + +# TODO +# * + +MODE_BW="" +MODE_FIX="" +MODE_HW="" +MODE_NET="" +MODE_TZ="" +TARBALLS="" +PROGNAME=$(basename $0) +VER=1.0 +TMPLOG=/tmp/$PROGNAME-$$.log + +# help function + +function usage () { + echo "usage: $PROGNAME " + echo " switch trc6500 mode" + echo " avaliable modes are:" + echo " - 8MHzMHF, 12MHzDF, 12MHzMDF, 30MHzMDF 30MHzMDF.lite or 30MHzMHF" + echo " - fix_ssh" + echo " - hw_ibm or hw_supermicro" + echo " - network" + echo " - tz_zulu or tz_paris" + exit $@ +} + +# formating functions + +function title () { echo -e "\033[0;1m$*\033[0;0m"; } +function pass () { echo -e "\033[1;32m$*\033[0;0m"; } +function warn () { echo -e "\033[1;33m$*\033[0;0m"; } +function fail () { echo -e "\033[1;31m$*\033[0;0m"; } + +# check command + +function check () { + echo -n "$@: " + $@ 2>$TMPLOG && pass OK || { fail KO; cat $TMPLOG; exit 1; } + rm -f $TMPLOG +} + +# argument processing + +while [ $# -gt 0 ]; do + case "$1" in + -h) usage 0;; + 8mhz|8MHz|12mhzdf|12MHzDF|12mhzmdf|12MHzMDF|30mhzmdf|30MHzMDF|30mhzmdf.lite|30MHzMDF.lite|30mhzmhf|30MHzMHF) MODE_BW="${1^^}";; + fix_ssh) MODE_FIX="$1";; + hw_ibm|hw_supermicro) MODE_HW="$1";; + network) MODE_NET="$1";; + tz_paris|tz_zulu) MODE_TZ="$1";; + *) usage 1;; + esac + shift +done + +# main process + +action="" + +if [ "$MODE_BW" ]; then + title "updating /etc/hosts" + MODE_BW=${MODE_BW/MHZ/MHz} + check rm -f /etc/hosts + check ln -s /etc/hosts.${MODE_BW/LITE/lite} /etc/hosts + TARBALLS+=" root" + for ip in 0A851{A,C}; do check ln -T -f -s default /opt/tftp/pxelinux.cfg/$ip; done + case "$MODE_BW" in + 8MHzMHF) + for ip in 0A851{A,C}A5; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done + ;; + 12MHzDF) ;; + 12MHzMDF) ;; + 30MHzMDF) ;; + 30MHzMDF.lite) + for ip in 0A851{A,C}; do check ln -T -f -s lite /opt/tftp/pxelinux.cfg/$ip; done + check cp /etc/dhcp/dhcpd.conf.lite /etc/dhcp/dhcpd.conf + ;; + 30MHzMHF) + for ip in 0A851{A,C}A{1..6}; do check ln -T -f -s acq /opt/tftp/pxelinux.cfg/$ip; done + for ip in 0A851{A,C}A9; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done + ;; + esac + action="done" +fi + +if [ "$MODE_FIX" ]; then + + case "$MODE_FIX" in + fix_ssh) + sed -i 's/^\(UsePAM\) yes/\1 no/' /etc/ssh/sshd_config + TARBALLS+=" root" + + action="done" + esac + +fi + +if [ "$MODE_HW" ]; then + + conf=/etc/default/shutdownallblades + + title "change shutdownallblades" + if $(grep -sq '^#*REBOOT=' $conf); then + case "$MODE_HW" in + hw_ibm) check sed -i 's/^#*REBOOT=.*$/#REBOOT=yes/' $conf;; + hw_supermicro) check sed -i 's/^#*REBOOT=.*$/REBOOT=yes/' $conf;; + esac + else + case "$MODE_HW" in + hw_ibm) check sed -i '$a#REBOOT=yes' $conf;; + hw_supermicro) check sed -i '$aREBOOT=yes' $conf;; + esac + fi + + action="done" +fi + +if [ "$MODE_NET" ]; then + + conf=/etc/dhcp/dhcpd.conf + + title "update network configuraton" + if $(grep -sq 'trc[0-9]*_1' $conf); then + check sed -i 's/\(host.*trc[0-9][0-9]\)\([^_]\)/\1-rf\2/;s/\(host.*trc[0-9][0-9]\)_1/\1/' $conf + fi + TARBALLS+=" root" + + action="done" +fi + +if [ "$MODE_TZ" ]; then + case "$MODE_TZ" in + tz_paris) TZ="Europe/Paris";; + tz_zulu) TZ="Etc/Zulu";; + *) TZ="";; + esac + + if [ "$TZ" ]; then + echo $TZ > /etc/timezone + TARBALLS+=" root" + + action="done" + fi +fi + +# last check +[ "$action" ] || { echo "no mode specified"; exit 1; } + +[ "$TARBALLS" ] && make -f /opt/cluster/Makefile $TARBALLS + +# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/master/opt/script/check_network.sh b/master/opt/script/check_network.sh new file mode 100755 index 0000000..5c17bf2 --- /dev/null +++ b/master/opt/script/check_network.sh @@ -0,0 +1,78 @@ +#!/bin/bash +# +# ============================================================================ +# +# Copyright (C) THALES. All rights reserved +# Author: Alexandre Cazalis +# +# Gestion attente lames esclaves au boot (ping,ssh) +# +# 2013-11-20 : V1.2 LMa +# - Ajout de la personalisation de la commande a executer +# par defaut (uptime). Ajout attente montage nfs avant demarrage +# 2014-05-28 : V1.3 LMa +# - Ajout d'un mode foreground pour ne tenter qu'une fois chaque commande +# - Ajout d'une commande pour exclude la lame maitre +# +# 2014-10-28 : Change owner +# ============================================================================ + +# TODO +# * + +CMD="uptime" +MODE="iter" +PROGNAME=$(basename $0) +VER=1.3 +EXCLUDE="___" + +function usage () { + echo "usage: $PROGNAME [-c command] [-h] [-i] [-o] [-t seconds] [-v] [-w] [-x] host1 host2..." + echo " -c: set command (default '$CMD')" + echo " -h: help message" + echo " -i: infinity loop mode [default]" + echo " -o: only try ones" + echo " -t: timeout" + echo " -v: version message" + echo " -w: wait mode" + echo " -x: avoid master blade" + exit $@ +} + +while [ $# -gt 0 ]; do + case "$1" in + -c) shift; CMD=$1;; + -h) usage 0;; + -i) MODE="iter";; + -o) MODE="ones";; + -t) shift; [[ "$1" =~ [^0-9] ]] && { echo "incorrect timeout ($1)"; exit 1;}; TIMEOUT=$1;; + -v) echo "$PROGNAME: version $VER"; exit;; + -w) MODE="wait";; + -x) EXCLUDE="trc00";; + *) list+=" "$1;; + esac + shift +done + +# list +[ "$list" ] || list=$(awk '{sub(/#.*/, "")} /trc[0-9][0-9]/ && ! /-rf/ {print $2}' /etc/hosts) +list=$(echo $list" "|sed s/$EXCLUDE//) + +# timeout +if [ "$TIMEOUT" ]; then + trap "echo 'timeout expired (${TIMEOUT}s)'; exit 0;" SIGVTALRM + ( sleep $TIMEOUT; kill -SIGVTALRM $$ 2>/dev/null; [ $? -eq 0 ] && rc=1 || rc=0; exit $rc) & +fi +trap "exit 0;" SIGINT + +# main loop +while true; do + for host in $list; do + stat=0 + echo -n ${host}:" " + ping -c 1 $host >&/dev/null && { ssh -t -o ConnectTimeout=1 root@$host "$CMD" 2>/dev/null && stat=1 || echo "soon..."; } || echo + [ "$MODE" = "wait" -a $stat -eq 1 ] && list=${list/$host } + done + [ "$MODE" = "ones" ] && break; + [[ "$list" =~ [a-zA-Z0-9_-] ]] && sleep 1 || break; +done diff --git a/master/opt/script/configure_fe306.sh b/master/opt/script/configure_fe306.sh new file mode 100755 index 0000000..53cfae8 --- /dev/null +++ b/master/opt/script/configure_fe306.sh @@ -0,0 +1,181 @@ +#!/bin/bash + +# parameters +# +# ============================================================================ +# +# Copyright (C) THALES. All rights reserved +# Author: Laurent Mazet +# +# 2013-11-10 V1.0 : Creation +# +# 2013-11-20 V1.1 : L.Mazet ajout possibilite de configuration du switch +# +# ============================================================================ + +DRY= +ID= +IP=192.168.0.1 +TRC6500_SCRIPT_DIR=$(dirname $0) + +# help function + +function usage () { + echo "usage: $PROGNAME [-a] [-d] [-h] [-i ]" + echo " -a: configure all boards" + echo " -d: dry mode" + echo " -h: help message" + echo " -i: board id (from 1 to 5)" + exit $@ + } + +# formating functions + +function title () { echo -e "\033[0;1m$*\033[0;0m"; } +function pass () { echo -e "\033[1;32m$*\033[0;0m"; } +function warn () { echo -e "\033[1;33m$*\033[0;0m"; } +function fail () { echo -e "\033[1;31m$*\033[0;0m"; } + +# configuration values + +# argument processing + +while [ $# -gt 0 ]; do + case "$1" in + -a) ID=all;; + -d) DRY=yes;; + -h) usage 0;; + -i) shift; ID=$1;; + *) usage 1;; + esac + shift +done + +# switch port configure function () + +function sw_configure () { + case "$1" in + off) CMD="-c 'configure terminal' -c 'interface range g1/39-44' -c 'shutdown' -c end -c 'clear mac address-table dynamic' -c 'clear ip arp inspection log' -c exit";; + on) CMD="-c 'configure terminal' -c 'interface range g1/39-44' -c 'no shutdown' -c end -c exit";; + 1) CMD="-c 'configure terminal' -c 'interface g1/39' -c 'no shutdown' -c end -c exit";; + 2) CMD="-c 'configure terminal' -c 'interface g1/40' -c 'no shutdown' -c end -c exit";; + 3) CMD="-c 'configure terminal' -c 'interface g1/41' -c 'no shutdown' -c end -c exit";; + 4) CMD="-c 'configure terminal' -c 'interface g1/42' -c 'no shutdown' -c end -c exit";; + 5) CMD="-c 'configure terminal' -c 'interface g1/43' -c 'no shutdown' -c end -c exit";; + 6) CMD="-c 'configure terminal' -c 'interface g1/44' -c 'no shutdown' -c end -c exit";; + esac + + if [ "$DRY" = "yes" ]; then + echo connect_switch.tcl -h swm $CMD + else + LOG=/tmp/$PROGNAME-$$.log + echo -n "sw_configure $1: " + eval $TRC6500_SCRIPT_DIR/connect_switch.tcl $CMD swm >&$LOG && pass OK || { fail KO; cat $LOG; exit 1; } + rm -f $LOG + fi +} + +case "$ID" in +1) CH1=0; CH2=1; CLOCKREF=external;; +2) CH1=2; CH2=3; CLOCKREF=internal;; +3) CH1=4; CH2=5; CLOCKREF=internal;; +4) CH1=6; CH2=7; CLOCKREF=internal;; +5) CH1=8; CH2=9; CLOCKREF=internal;; +6) CH1=10; CH2=11; CLOCKREF=internal;; +all) + for id in $(seq 1 5); do + title "switch off all fe306 ports" + sw_configure off + title "switch on port for fe306 $id" + sw_configure $id + title "configure fe306 $id" + if [ "$DRY" = "yes" ]; then + echo $(basename $0) -i $id + else + { $0 -i $id | mawk -W interactive '{print " " $0}'; } && pass OK || { fail KO; exit 1; } + fi + done + title "switch on all fe306 ports" + sw_configure on + exit 0 + ;; +*) echo "unknown fe306 id ($ID)"; exit 1;; +esac + +# configure function + +function configure () { + echo -n "$1 [$2 <= $3]: " + if [ "$DRY" = "yes" ]; then + echo wget -q -O - http://$IP/$1?$2=$3 + else + wget -q -O - http://$IP/$1?$2=$3 >/dev/null && pass OK || { fail KO; exit 1; } + fi +} + +# setup local address + +title "setup local address" +cmd="ifconfig eth1:1 192.168.0.2 netmask 255.255.255.0" +[ "$DRY" = "yes" ] && echo $cmd || { echo -n $cmd" "; eval $cmd && pass OK || { fail KO; exit 1; }; } + +# check if fe306 is connected + +#title "check presence of $IP" +#cmd="ping -c 1 -w 10 -W 10 $IP" +#[ "$DRY" = "yes" ] && echo $cmd || { echo -n $cmd" "; eval $cmd >&/dev/null && pass OK || { warn KO; ifconfig eth1:1 down; exit 0; }; } + +# get serial number + +[ "$DRY" = "yes" ] && SN=00 || \ + SN=$(wget -q -O - http://$IP/versions_en.html | mawk '/MODULE/ { module = 1 } /Serial Number/ { if (module) { printf "%02X", $4; exit 0 } }') + +[[ "$SN" =~ ^[0-9A-F][0-9A-F]$ ]] || { echo "unknown serial number ($SN)"; exit 1; } + +# configure ip + +title "configure ip" + +configure ModeServ.cmd serv_mode MANUAL +configure MacServ.cmd serv_mac 00.80.EE.00.$SN.01 +configure IpServ.cmd serv_ip $(getent hosts | awk '/fe306-'$ID'/ {print $1}') +configure MaskServ.cmd serv_mask 255.255.255.0 + +for i in $(seq 1 8); do + configure MacProd$i.cmd prod_mac$i 00.80.EE.00.$SN.0$((i+1)) + configure IpProd$i.cmd prod_ip$i 10.133.26.1$ID$i +done + +configure IpMulticast.cmd multicast_ip 238.0.0.0 +configure RxMulticast.cmd multicast_rx 62002 +configure TxMulticast.cmd multicast_tx 62004 +configure TTL.cmd ttl 10 + +# configure gps + +title "configure gps" + +configure GpsRate.cmd gps_rate 19200 +configure GpsChar.cmd gps_char 8 +configure GpsStop.cmd gps_stop 1 +configure GpsParity.cmd gps_parity no + +# configure miscellaneous + +title "configure miscellaneous" +configure BoardNum.cmd board_num $ID +configure RackNum.cmd rack_num 1 +configure Chan1Num.cmd channel1_num $CH1 +configure Chan2Num.cmd channel2_num $CH2 + +configure FpgaLoc.cmd fpga_loc FLASH +configure Clk10Mhz.cmd clk_10 $CLOCKREF +configure PllConfig.cmd pll_cfg pll_cfg_02 + +# unset local address + +title "unset local address" +cmd="ifconfig eth1:1 down" +[ "$DRY" = "yes" ] && echo $cmd || { echo -n $cmd" "; eval $cmd && pass OK || { fail KO; exit 1; }; } + +# vim:set tabstop=4 shiftwidth=4 softtabstop=4: diff --git a/master/opt/script/configure_matrix.tcl b/master/opt/script/configure_matrix.tcl new file mode 100755 index 0000000..540c3d1 --- /dev/null +++ b/master/opt/script/configure_matrix.tcl @@ -0,0 +1,39 @@ +#!/usr/bin/expect + +# ============================================================================ +# +# Copyright (C) THALES. All rights reserved +# +# * V1.0 Laurent Mazet 29/04/2013 +# creation script de configuration de la matrice par ligne de commande +# ============================================================================ + +spawn /opt/trc6500/tools/matrix_tool + +set timeout 3 + +exec ifconfig eth1:0 192.168.1.1 netmask 255.255.255.0 + +proc cleanexit {rc} { + exec ifconfig eth1:0 down + exit $rc +} + +expect { + "taper la commande choisie" { send "0\r" } + timeout { send_user "connection to $host timed out\n"; cleanexit 1 } + eof { send_user "connection to host failed\n"; cleanexit 1 } +} +expect { + "timeout detected" { send_user "can't connect on defaut ip\n"; cleanexit 1 } + "taper la commande choisie" { send "10\r" } +} + +expect "nouvelle adresse" { send "010.133.026.253\r" } + +expect "taper la commande choisie" { send "12\r" } + +expect "taper la commande choisie" { send "14\r" } + +cleanexit 0 +# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/master/opt/script/configure_switch.tcl b/master/opt/script/configure_switch.tcl new file mode 100755 index 0000000..4d34d43 --- /dev/null +++ b/master/opt/script/configure_switch.tcl @@ -0,0 +1,52 @@ +#!/usr/bin/expect + +# ============================================================================ +# +# Copyright (C) THALES. All rights reserved +# Author: Laurent Mazet +# +# Script de configuration du switchs +# +# 2013-10-10 V1.0 : Creation +# +# ============================================================================ + +set host [lrange $argv 0 0] +if { $host == "" } { + puts "usage: configure_switch.tcl \[sw1|sw2|swg1|swg2|swm\]" + exit 1 +} + +set tftpserver "" +if { $host == "swg1" } { set tftpserver "10.133.26.160" } +if { $host == "swg2" } { set tftpserver "10.133.26.160" } +if { $host == "swm" } { set tftpserver "10.133.28.160" } +if { $host == "sw1" } { set tftpserver "10.133.26.160" } +if { $host == "sw2" } { set tftpserver "10.133.26.160" } +if { $tftpserver == "" } { puts "unknown switch '$host'"; exit } + +set date [ exec date +%Y%m%d-%H:%m:%S ] +set backup "$host-$date.txt" + +spawn telnet $host + +set timeout 30 + +expect { + "Password:" { send "thales\r" } + incorrect { send_user "invalid password or account\n"; exit 1 } + timeout { send_user "connection to $host timed out\n"; exit 1 } + eof { send_user "connection to host failed\n"; exit 1 } +} +expect -exact ">" { send "enable\r" } +expect "Password:" { send "thales\r" } +expect "#" { send "copy running-config tftp://$tftpserver/$backup\r" } +expect -exact "?" { send "$tftpserver\r" } +expect -exact "?" { send "$backup\r" } +expect "#" { send "copy tftp://$tftpserver/$host.txt startup-config\r" } +expect -exact "?" { send "startup-config\r" } +#expect "#" { send_user " << reload or exit ? >> "; interact } +expect "#" { send "reload\r" } + +exit 0 +# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/master/opt/script/configure_switch_bootstrap.tcl b/master/opt/script/configure_switch_bootstrap.tcl new file mode 100755 index 0000000..db95d4d --- /dev/null +++ b/master/opt/script/configure_switch_bootstrap.tcl @@ -0,0 +1,49 @@ +#!/usr/bin/expect + +set host [lrange $argv 0 0] +if { $host == "" } { + puts "usage: configure_switch_bootstrap.tcl \[sw1|sw2|swg1|swg2|swm\]" + exit 1 +} + +set ipaddress "" +if { $host == "swg1" } { set ipaddress "10.133.26.231" } +if { $host == "swg2" } { set ipaddress "10.133.26.232" } +if { $host == "swm" } { set ipaddress "10.133.28.231" } +if { $host == "sw1" } { set ipaddress "10.133.26.231" } +if { $host == "sw2" } { set ipaddress "10.133.26.232" } +if { $ipaddress == "" } { puts "unknown switch '$host'""; exit 1 } + +spawn screen -c . /dev/ttyUSB0 + +set timeout 5 + +set state 0 +while { $state != 1 } { + expect { + timeout { send "\r" } + -exact ">" { send "enable\r" } + "#" { set state 1 } + "Password:" { send "thales\r" } + eof { send_user "connection to host failed\n"; exit 1 } + } +} + +send "configure terminal\r" +expect "#" { send "interface vlan 1\r" } +expect "#" { send "ip address $ipaddress 255.255.255.0\r" } +expect "#" { send "exit\r" } +expect "#" { send "line vty 0 4\r" } +expect "#" { send "password thales\r" } +expect "#" { send "enable password thales\r" } +expect "#" { send "end\r" } + +# quit switch connection +expect "#" { send "exit\r" } + +# to quit screen we need to send C-a \. +send "\001\\" +expect "kill all your windows" { send "y\r" } + +exit 0 +# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/master/opt/script/connect_switch.tcl b/master/opt/script/connect_switch.tcl new file mode 100755 index 0000000..5f2299e --- /dev/null +++ b/master/opt/script/connect_switch.tcl @@ -0,0 +1,115 @@ +#!/usr/bin/expect + +# ============================================================================ +# +# Copyright (C) THALES. All rights reserved +# Author: Laurent Mazet +# +# Script de connection au switchs +# +# 2013-10-10 V1.0 : Creation +# +# 2014-03-05 V1.1 : LMa ajout de passage de commande CISCO en parametre +# +# 2014-06-10 V1.2 : LMa ajout d'un fichier de commandes +# +# ============================================================================ + +# default value +set adminpassword "thales" +set cmd {} +set host "" +set loginpassword "thales" +set prompt "SW*" + +proc usage {rc} { + puts "usage: connect_switch.tcl \[host\] \[-a adminpassword\] \[-c command\] \[-f file\] \[-h\] \[-l loginpassword\] \[-p prompt\]" + exit $rc +} + +# process argument +set action "" +for {set i 0} {$i < [llength $argv]} {incr i} { + set arg [lindex $argv $i] + switch $arg { + -a { set action "-adminpassword" } + -c { set action "-cmd" } + -f { set action "-file" } + -h { usage 0 } + -l { set action "-loginpassword" } + -p { set action "-prompt" } + default { + switch $action { + -adminpassword { set adminpassword $arg } + -cmd { set cmd [lappend cmd $arg] } + -file { + if {[file isfile $arg] == 1} then { + set f [open $arg "r"] + set data [read $f] + close $f + foreach line [split $data "\n"] { + set cmd [lappend cmd $line] + } + } else { + puts "can't open file '$arg'" + exit 1 + } + } + -loginpassword { set loginpassword $arg } + -prompt { set prompt $arg } + default { set host $arg } + } + set action "" + } + } +} +if {$action != ""} { + puts "missing arguments" + exit 1 +} +if { $host == "" } { + usage 1 +} + +# start connection +spawn telnet $host + +# login password +expect { + "Password:" { send "$loginpassword\r" } + timeout { send_user "connection to host failed\n"; exit 1 } + eof { send_user "connection to host failed\n"; exit 1 } +} + +# admin password +expect { + "$prompt>" { send "enable\r" } + timeout { send_user "connection to host failed\n"; exit 1 } + "Password:" { send_user "invalid login password\n"; exit 1 } +} +expect "Password:" { send "$adminpassword\r" } +expect { + "$prompt#" { send "\r" } + "Password:" { send_user "invalid admin password\n"; exit 1 } +} + +# commands or interactive mode +if {[llength $cmd] == 0 } { + expect "$prompt#" { interact } +} else { + expect "$prompt#" { send "terminal length 0\r" } + for {set i 0} {$i < [llength $cmd]} {incr i} { + expect { + "$prompt#" { send "[lindex $cmd $i]\r" } + "confirm" { send "\r"; continue } + } + } + expect { + "confirm" { send "\r"; expect "$prompt" { send "exit\r" } } + "$prompt" { send "exit\r" } + } + send_user "\n" +} + +exit 0 +# vim:set tabstop=4 shiftwidth=4 softtabstop=4: diff --git a/master/opt/script/cpumon_lite b/master/opt/script/cpumon_lite new file mode 100755 index 0000000..ae99371 --- /dev/null +++ b/master/opt/script/cpumon_lite @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +open PROC_STAT, "; +close PROC_STAT; +my @cpu_stat_t0 = grep {s/^cpu\d+\s//} (@proc_stat); +sleep 1; +open PROC_STAT, "; +close PROC_STAT; +my @cpu_stat_t1 = grep {s/^cpu\d+\s//} (@proc_stat); + +my $total = 0; +for (my $cpu_i=0; $cpu_i<(scalar @cpu_stat_t0); $cpu_i++) { + my @stat_t0 = split /\s+/, $cpu_stat_t0[$cpu_i]; + my @stat_t1 = split /\s+/, $cpu_stat_t1[$cpu_i]; + my ($t0_idle, $t1_idle) = ($stat_t0[3], $stat_t1[3]); + my ($t0_total, $t1_total) = (0, 0); + $t0_total += $_ foreach @stat_t0; + $t1_total += $_ foreach @stat_t1; + + my $load = ($t1_total - $t0_total == 0) ? 100: int((100 * (($t1_total - $t0_total) - ($t1_idle - $t0_idle))/($t1_total - $t0_total)) + 0.5); + print " +" unless ($cpu_i == 0); + printf "% 5.1f%% ", $load; + $total += $load; +} +printf " = % 6.1f%%\n", $total; diff --git a/master/opt/script/flash_fe306.sh b/master/opt/script/flash_fe306.sh new file mode 100755 index 0000000..423b6d4 --- /dev/null +++ b/master/opt/script/flash_fe306.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# parameters +# +# ============================================================================ +# +# Copyright (C) THALES. All rights reserved +# Author: Laurent Mazet +# +# 2014-10-06 V1.0 : Creation +# +# ============================================================================ + +DRY= +FIRMWARE=/opt/trc6500/config/code_metier/libHwCtrl/Bitstream +LIST="application.out production.bin ts12_fp_pano.bin ts22_fp_pano.bin firmware.out" +HOST= +TRC6500_SCRIPT_DIR=$(dirname $0) + +# help function + +function usage () { + echo "usage: $PROGNAME [-d] [-f dir] [-h] [-i host] [-l list]" + echo " -d: dry mode" + echo " -f: firmware directory ($FIRMWARE)" + echo " -h: help message" + echo " -i: board hostname (or ip)" + echo " -l: list of firmware ($LIST)" + exit $@ + } + +# formating functions + +function title () { echo -e "\033[0;1m$*\033[0;0m"; } +function pass () { echo -e "\033[1;32m$*\033[0;0m"; } +function warn () { echo -e "\033[1;33m$*\033[0;0m"; } +function fail () { echo -e "\033[1;31m$*\033[0;0m"; } + +# argument processing + +while [ $# -gt 0 ]; do + case "$1" in + -d) DRY=yes;; + -f) shift; FIRMWARE=$1;; + -h) usage 0;; + -i) shift; HOST=$1;; + -l) shift; LIST=$1;; + *) usage 1;; + esac + shift +done + +# check host + +[ "$HOST" ] || ping -c 1 $HOST >&/dev/null || \ + { fail "Can't connect '$HOST'"; exit 1; } + +# check firmware + +for f in $LIST; do + [ -f $FIRMWARE/$f ] || { fail "Can't find '$FIRMWARE/$f'"; exit 1; } +done + +# check mode + +protect="" +[ "$DRY" = yes ] && protect="!echo" + +# flash firmware + +title "flash fe306 '$HOST'" + +ftp -n <" + +proc usage {script_name rc} { + puts "usage: [exec basename $script_name] \[host\] \[-b blade\] \[-h\] \[-l login\] \[-p password\] \[-x prompt\]" + exit $rc +} + +# process argument +set action "" +for {set i 0} {$i < [llength $argv]} {incr i} { + set arg [lindex $argv $i] + switch $arg { + -b { set action "-blade" } + -h { usage $argv0 0 } + -l { set action "-login" } + -p { set action "-password" } + -x { set action "-prompt" } + default { + switch $action { + -blade { set blade $arg } + -login { set login $arg } + -password { set password $arg } + -prompt { set prompt $arg } + default { set host $arg } + } + set action "" + } + } +} +if {$action != ""} { + puts "missing arguments" + exit 1 +} +if { $host == "" } { + usage $argv0 1 +} + +# start connection +spawn telnet $host + +# login +expect { + "username:" { send "$login\r" } + timeout { send_user "connection to host failed\n"; exit 1 } + eof { send_user "connection to host failed\n"; exit 1 } +} + + +# password +expect { + "password:" { send "$password\r" } + timeout { send_user "connection to host failed\n"; exit 1 } + eof { send_user "connection to host failed\n"; exit 1 } +} + +expect { + "$prompt" { send "mt -b $blade\r" } + "username:" { send_user "connection to host failed\n"; exit 1 } +} + +expect { + "OK" { send "exit\r" } + "$prompt" { send_user "error\n"; exit 1 } +} + +send_user "\n" +exit 0 +# vim:set tabstop=4 shiftwidth=4 softtabstop=4: diff --git a/trc6500-master-file/Makefile b/trc6500-master-file/Makefile index dabfe20..a9850dc 100644 --- a/trc6500-master-file/Makefile +++ b/trc6500-master-file/Makefile @@ -10,8 +10,7 @@ TARGET = ../$(MODULE)_$(VERSION)_$(ARCH).deb OBJECTS = deb/DEBIAN/preinst \ deb/DEBIAN/postrm \ - deb/DEBIAN/postinst \ - deb/opt/script + deb/DEBIAN/postinst SHELL=/bin/bash MODULE = $(shell basename `pwd`) @@ -51,10 +50,6 @@ deb/DEBIAN/postrm: debian/debian-postrm deb $(addprefix $(DIR)/, $(FILES)) $(MAK deb/DEBIAN/postinst: debian/debian-postinst deb cp $< $@ -deb/opt/script: script deb - mkdir -p $@ - cp $ deb/DEBIAN/control mkdir -p deb/usr/share/doc/$(MODULE) diff --git a/trc6500-master-file/script/change_configuration.sh b/trc6500-master-file/script/change_configuration.sh deleted file mode 100755 index ee4f32c..0000000 --- a/trc6500-master-file/script/change_configuration.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash -# ============================================================================ -# -# Copyright (C) THALES. All rights reserved -# Author: Laurent Mazet -# - -# Date : 10/10/2013 -# -# 05/11/2013 : LMa configuration des timezone Zulu(GMT) et Paris -# Desactivation de pam pour ssh -# ============================================================================ - -# Switch configuration - -# TODO -# * - -MODE_BW="" -MODE_FIX="" -MODE_HW="" -MODE_NET="" -MODE_TZ="" -TARBALLS="" -PROGNAME=$(basename $0) -VER=1.0 -TMPLOG=/tmp/$PROGNAME-$$.log - -# help function - -function usage () { - echo "usage: $PROGNAME " - echo " switch trc6500 mode" - echo " avaliable modes are:" - echo " - 8MHzMHF, 12MHzDF, 12MHzMDF, 30MHzMDF 30MHzMDF.lite or 30MHzMHF" - echo " - fix_ssh" - echo " - hw_ibm or hw_supermicro" - echo " - network" - echo " - tz_zulu or tz_paris" - exit $@ -} - -# formating functions - -function title () { echo -e "\033[0;1m$*\033[0;0m"; } -function pass () { echo -e "\033[1;32m$*\033[0;0m"; } -function warn () { echo -e "\033[1;33m$*\033[0;0m"; } -function fail () { echo -e "\033[1;31m$*\033[0;0m"; } - -# check command - -function check () { - echo -n "$@: " - $@ 2>$TMPLOG && pass OK || { fail KO; cat $TMPLOG; exit 1; } - rm -f $TMPLOG -} - -# argument processing - -while [ $# -gt 0 ]; do - case "$1" in - -h) usage 0;; - 8mhz|8MHz|12mhzdf|12MHzDF|12mhzmdf|12MHzMDF|30mhzmdf|30MHzMDF|30mhzmdf.lite|30MHzMDF.lite|30mhzmhf|30MHzMHF) MODE_BW="${1^^}";; - fix_ssh) MODE_FIX="$1";; - hw_ibm|hw_supermicro) MODE_HW="$1";; - network) MODE_NET="$1";; - tz_paris|tz_zulu) MODE_TZ="$1";; - *) usage 1;; - esac - shift -done - -# main process - -action="" - -if [ "$MODE_BW" ]; then - title "updating /etc/hosts" - MODE_BW=${MODE_BW/MHZ/MHz} - check rm -f /etc/hosts - check ln -s /etc/hosts.${MODE_BW/LITE/lite} /etc/hosts - TARBALLS+=" root" - for ip in 0A851{A,C}; do check ln -T -f -s default /opt/tftp/pxelinux.cfg/$ip; done - case "$MODE_BW" in - 8MHzMHF) - for ip in 0A851{A,C}A5; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done - ;; - 12MHzDF) ;; - 12MHzMDF) ;; - 30MHzMDF) ;; - 30MHzMDF.lite) - for ip in 0A851{A,C}; do check ln -T -f -s lite /opt/tftp/pxelinux.cfg/$ip; done - check cp /etc/dhcp/dhcpd.conf.lite /etc/dhcp/dhcpd.conf - ;; - 30MHzMHF) - for ip in 0A851{A,C}A{1..6}; do check ln -T -f -s acq /opt/tftp/pxelinux.cfg/$ip; done - for ip in 0A851{A,C}A9; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done - ;; - esac - action="done" -fi - -if [ "$MODE_FIX" ]; then - - case "$MODE_FIX" in - fix_ssh) - sed -i 's/^\(UsePAM\) yes/\1 no/' /etc/ssh/sshd_config - TARBALLS+=" root" - - action="done" - esac - -fi - -if [ "$MODE_HW" ]; then - - conf=/etc/default/shutdownallblades - - title "change shutdownallblades" - if $(grep -sq '^#*REBOOT=' $conf); then - case "$MODE_HW" in - hw_ibm) check sed -i 's/^#*REBOOT=.*$/#REBOOT=yes/' $conf;; - hw_supermicro) check sed -i 's/^#*REBOOT=.*$/REBOOT=yes/' $conf;; - esac - else - case "$MODE_HW" in - hw_ibm) check sed -i '$a#REBOOT=yes' $conf;; - hw_supermicro) check sed -i '$aREBOOT=yes' $conf;; - esac - fi - - action="done" -fi - -if [ "$MODE_NET" ]; then - - conf=/etc/dhcp/dhcpd.conf - - title "update network configuraton" - if $(grep -sq 'trc[0-9]*_1' $conf); then - check sed -i 's/\(host.*trc[0-9][0-9]\)\([^_]\)/\1-rf\2/;s/\(host.*trc[0-9][0-9]\)_1/\1/' $conf - fi - TARBALLS+=" root" - - action="done" -fi - -if [ "$MODE_TZ" ]; then - case "$MODE_TZ" in - tz_paris) TZ="Europe/Paris";; - tz_zulu) TZ="Etc/Zulu";; - *) TZ="";; - esac - - if [ "$TZ" ]; then - echo $TZ > /etc/timezone - TARBALLS+=" root" - - action="done" - fi -fi - -# last check -[ "$action" ] || { echo "no mode specified"; exit 1; } - -[ "$TARBALLS" ] && make -f /opt/cluster/Makefile $TARBALLS - -# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/trc6500-master-file/script/check_network.sh b/trc6500-master-file/script/check_network.sh deleted file mode 100755 index 5c17bf2..0000000 --- a/trc6500-master-file/script/check_network.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -# -# ============================================================================ -# -# Copyright (C) THALES. All rights reserved -# Author: Alexandre Cazalis -# -# Gestion attente lames esclaves au boot (ping,ssh) -# -# 2013-11-20 : V1.2 LMa -# - Ajout de la personalisation de la commande a executer -# par defaut (uptime). Ajout attente montage nfs avant demarrage -# 2014-05-28 : V1.3 LMa -# - Ajout d'un mode foreground pour ne tenter qu'une fois chaque commande -# - Ajout d'une commande pour exclude la lame maitre -# -# 2014-10-28 : Change owner -# ============================================================================ - -# TODO -# * - -CMD="uptime" -MODE="iter" -PROGNAME=$(basename $0) -VER=1.3 -EXCLUDE="___" - -function usage () { - echo "usage: $PROGNAME [-c command] [-h] [-i] [-o] [-t seconds] [-v] [-w] [-x] host1 host2..." - echo " -c: set command (default '$CMD')" - echo " -h: help message" - echo " -i: infinity loop mode [default]" - echo " -o: only try ones" - echo " -t: timeout" - echo " -v: version message" - echo " -w: wait mode" - echo " -x: avoid master blade" - exit $@ -} - -while [ $# -gt 0 ]; do - case "$1" in - -c) shift; CMD=$1;; - -h) usage 0;; - -i) MODE="iter";; - -o) MODE="ones";; - -t) shift; [[ "$1" =~ [^0-9] ]] && { echo "incorrect timeout ($1)"; exit 1;}; TIMEOUT=$1;; - -v) echo "$PROGNAME: version $VER"; exit;; - -w) MODE="wait";; - -x) EXCLUDE="trc00";; - *) list+=" "$1;; - esac - shift -done - -# list -[ "$list" ] || list=$(awk '{sub(/#.*/, "")} /trc[0-9][0-9]/ && ! /-rf/ {print $2}' /etc/hosts) -list=$(echo $list" "|sed s/$EXCLUDE//) - -# timeout -if [ "$TIMEOUT" ]; then - trap "echo 'timeout expired (${TIMEOUT}s)'; exit 0;" SIGVTALRM - ( sleep $TIMEOUT; kill -SIGVTALRM $$ 2>/dev/null; [ $? -eq 0 ] && rc=1 || rc=0; exit $rc) & -fi -trap "exit 0;" SIGINT - -# main loop -while true; do - for host in $list; do - stat=0 - echo -n ${host}:" " - ping -c 1 $host >&/dev/null && { ssh -t -o ConnectTimeout=1 root@$host "$CMD" 2>/dev/null && stat=1 || echo "soon..."; } || echo - [ "$MODE" = "wait" -a $stat -eq 1 ] && list=${list/$host } - done - [ "$MODE" = "ones" ] && break; - [[ "$list" =~ [a-zA-Z0-9_-] ]] && sleep 1 || break; -done diff --git a/trc6500-master-file/script/configure_fe306.sh b/trc6500-master-file/script/configure_fe306.sh deleted file mode 100755 index 53cfae8..0000000 --- a/trc6500-master-file/script/configure_fe306.sh +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/bash - -# parameters -# -# ============================================================================ -# -# Copyright (C) THALES. All rights reserved -# Author: Laurent Mazet -# -# 2013-11-10 V1.0 : Creation -# -# 2013-11-20 V1.1 : L.Mazet ajout possibilite de configuration du switch -# -# ============================================================================ - -DRY= -ID= -IP=192.168.0.1 -TRC6500_SCRIPT_DIR=$(dirname $0) - -# help function - -function usage () { - echo "usage: $PROGNAME [-a] [-d] [-h] [-i ]" - echo " -a: configure all boards" - echo " -d: dry mode" - echo " -h: help message" - echo " -i: board id (from 1 to 5)" - exit $@ - } - -# formating functions - -function title () { echo -e "\033[0;1m$*\033[0;0m"; } -function pass () { echo -e "\033[1;32m$*\033[0;0m"; } -function warn () { echo -e "\033[1;33m$*\033[0;0m"; } -function fail () { echo -e "\033[1;31m$*\033[0;0m"; } - -# configuration values - -# argument processing - -while [ $# -gt 0 ]; do - case "$1" in - -a) ID=all;; - -d) DRY=yes;; - -h) usage 0;; - -i) shift; ID=$1;; - *) usage 1;; - esac - shift -done - -# switch port configure function () - -function sw_configure () { - case "$1" in - off) CMD="-c 'configure terminal' -c 'interface range g1/39-44' -c 'shutdown' -c end -c 'clear mac address-table dynamic' -c 'clear ip arp inspection log' -c exit";; - on) CMD="-c 'configure terminal' -c 'interface range g1/39-44' -c 'no shutdown' -c end -c exit";; - 1) CMD="-c 'configure terminal' -c 'interface g1/39' -c 'no shutdown' -c end -c exit";; - 2) CMD="-c 'configure terminal' -c 'interface g1/40' -c 'no shutdown' -c end -c exit";; - 3) CMD="-c 'configure terminal' -c 'interface g1/41' -c 'no shutdown' -c end -c exit";; - 4) CMD="-c 'configure terminal' -c 'interface g1/42' -c 'no shutdown' -c end -c exit";; - 5) CMD="-c 'configure terminal' -c 'interface g1/43' -c 'no shutdown' -c end -c exit";; - 6) CMD="-c 'configure terminal' -c 'interface g1/44' -c 'no shutdown' -c end -c exit";; - esac - - if [ "$DRY" = "yes" ]; then - echo connect_switch.tcl -h swm $CMD - else - LOG=/tmp/$PROGNAME-$$.log - echo -n "sw_configure $1: " - eval $TRC6500_SCRIPT_DIR/connect_switch.tcl $CMD swm >&$LOG && pass OK || { fail KO; cat $LOG; exit 1; } - rm -f $LOG - fi -} - -case "$ID" in -1) CH1=0; CH2=1; CLOCKREF=external;; -2) CH1=2; CH2=3; CLOCKREF=internal;; -3) CH1=4; CH2=5; CLOCKREF=internal;; -4) CH1=6; CH2=7; CLOCKREF=internal;; -5) CH1=8; CH2=9; CLOCKREF=internal;; -6) CH1=10; CH2=11; CLOCKREF=internal;; -all) - for id in $(seq 1 5); do - title "switch off all fe306 ports" - sw_configure off - title "switch on port for fe306 $id" - sw_configure $id - title "configure fe306 $id" - if [ "$DRY" = "yes" ]; then - echo $(basename $0) -i $id - else - { $0 -i $id | mawk -W interactive '{print " " $0}'; } && pass OK || { fail KO; exit 1; } - fi - done - title "switch on all fe306 ports" - sw_configure on - exit 0 - ;; -*) echo "unknown fe306 id ($ID)"; exit 1;; -esac - -# configure function - -function configure () { - echo -n "$1 [$2 <= $3]: " - if [ "$DRY" = "yes" ]; then - echo wget -q -O - http://$IP/$1?$2=$3 - else - wget -q -O - http://$IP/$1?$2=$3 >/dev/null && pass OK || { fail KO; exit 1; } - fi -} - -# setup local address - -title "setup local address" -cmd="ifconfig eth1:1 192.168.0.2 netmask 255.255.255.0" -[ "$DRY" = "yes" ] && echo $cmd || { echo -n $cmd" "; eval $cmd && pass OK || { fail KO; exit 1; }; } - -# check if fe306 is connected - -#title "check presence of $IP" -#cmd="ping -c 1 -w 10 -W 10 $IP" -#[ "$DRY" = "yes" ] && echo $cmd || { echo -n $cmd" "; eval $cmd >&/dev/null && pass OK || { warn KO; ifconfig eth1:1 down; exit 0; }; } - -# get serial number - -[ "$DRY" = "yes" ] && SN=00 || \ - SN=$(wget -q -O - http://$IP/versions_en.html | mawk '/MODULE/ { module = 1 } /Serial Number/ { if (module) { printf "%02X", $4; exit 0 } }') - -[[ "$SN" =~ ^[0-9A-F][0-9A-F]$ ]] || { echo "unknown serial number ($SN)"; exit 1; } - -# configure ip - -title "configure ip" - -configure ModeServ.cmd serv_mode MANUAL -configure MacServ.cmd serv_mac 00.80.EE.00.$SN.01 -configure IpServ.cmd serv_ip $(getent hosts | awk '/fe306-'$ID'/ {print $1}') -configure MaskServ.cmd serv_mask 255.255.255.0 - -for i in $(seq 1 8); do - configure MacProd$i.cmd prod_mac$i 00.80.EE.00.$SN.0$((i+1)) - configure IpProd$i.cmd prod_ip$i 10.133.26.1$ID$i -done - -configure IpMulticast.cmd multicast_ip 238.0.0.0 -configure RxMulticast.cmd multicast_rx 62002 -configure TxMulticast.cmd multicast_tx 62004 -configure TTL.cmd ttl 10 - -# configure gps - -title "configure gps" - -configure GpsRate.cmd gps_rate 19200 -configure GpsChar.cmd gps_char 8 -configure GpsStop.cmd gps_stop 1 -configure GpsParity.cmd gps_parity no - -# configure miscellaneous - -title "configure miscellaneous" -configure BoardNum.cmd board_num $ID -configure RackNum.cmd rack_num 1 -configure Chan1Num.cmd channel1_num $CH1 -configure Chan2Num.cmd channel2_num $CH2 - -configure FpgaLoc.cmd fpga_loc FLASH -configure Clk10Mhz.cmd clk_10 $CLOCKREF -configure PllConfig.cmd pll_cfg pll_cfg_02 - -# unset local address - -title "unset local address" -cmd="ifconfig eth1:1 down" -[ "$DRY" = "yes" ] && echo $cmd || { echo -n $cmd" "; eval $cmd && pass OK || { fail KO; exit 1; }; } - -# vim:set tabstop=4 shiftwidth=4 softtabstop=4: diff --git a/trc6500-master-file/script/configure_matrix.tcl b/trc6500-master-file/script/configure_matrix.tcl deleted file mode 100755 index 540c3d1..0000000 --- a/trc6500-master-file/script/configure_matrix.tcl +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/expect - -# ============================================================================ -# -# Copyright (C) THALES. All rights reserved -# -# * V1.0 Laurent Mazet 29/04/2013 -# creation script de configuration de la matrice par ligne de commande -# ============================================================================ - -spawn /opt/trc6500/tools/matrix_tool - -set timeout 3 - -exec ifconfig eth1:0 192.168.1.1 netmask 255.255.255.0 - -proc cleanexit {rc} { - exec ifconfig eth1:0 down - exit $rc -} - -expect { - "taper la commande choisie" { send "0\r" } - timeout { send_user "connection to $host timed out\n"; cleanexit 1 } - eof { send_user "connection to host failed\n"; cleanexit 1 } -} -expect { - "timeout detected" { send_user "can't connect on defaut ip\n"; cleanexit 1 } - "taper la commande choisie" { send "10\r" } -} - -expect "nouvelle adresse" { send "010.133.026.253\r" } - -expect "taper la commande choisie" { send "12\r" } - -expect "taper la commande choisie" { send "14\r" } - -cleanexit 0 -# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/trc6500-master-file/script/configure_switch.tcl b/trc6500-master-file/script/configure_switch.tcl deleted file mode 100755 index 4d34d43..0000000 --- a/trc6500-master-file/script/configure_switch.tcl +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/expect - -# ============================================================================ -# -# Copyright (C) THALES. All rights reserved -# Author: Laurent Mazet -# -# Script de configuration du switchs -# -# 2013-10-10 V1.0 : Creation -# -# ============================================================================ - -set host [lrange $argv 0 0] -if { $host == "" } { - puts "usage: configure_switch.tcl \[sw1|sw2|swg1|swg2|swm\]" - exit 1 -} - -set tftpserver "" -if { $host == "swg1" } { set tftpserver "10.133.26.160" } -if { $host == "swg2" } { set tftpserver "10.133.26.160" } -if { $host == "swm" } { set tftpserver "10.133.28.160" } -if { $host == "sw1" } { set tftpserver "10.133.26.160" } -if { $host == "sw2" } { set tftpserver "10.133.26.160" } -if { $tftpserver == "" } { puts "unknown switch '$host'"; exit } - -set date [ exec date +%Y%m%d-%H:%m:%S ] -set backup "$host-$date.txt" - -spawn telnet $host - -set timeout 30 - -expect { - "Password:" { send "thales\r" } - incorrect { send_user "invalid password or account\n"; exit 1 } - timeout { send_user "connection to $host timed out\n"; exit 1 } - eof { send_user "connection to host failed\n"; exit 1 } -} -expect -exact ">" { send "enable\r" } -expect "Password:" { send "thales\r" } -expect "#" { send "copy running-config tftp://$tftpserver/$backup\r" } -expect -exact "?" { send "$tftpserver\r" } -expect -exact "?" { send "$backup\r" } -expect "#" { send "copy tftp://$tftpserver/$host.txt startup-config\r" } -expect -exact "?" { send "startup-config\r" } -#expect "#" { send_user " << reload or exit ? >> "; interact } -expect "#" { send "reload\r" } - -exit 0 -# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/trc6500-master-file/script/configure_switch_bootstrap.tcl b/trc6500-master-file/script/configure_switch_bootstrap.tcl deleted file mode 100755 index db95d4d..0000000 --- a/trc6500-master-file/script/configure_switch_bootstrap.tcl +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/expect - -set host [lrange $argv 0 0] -if { $host == "" } { - puts "usage: configure_switch_bootstrap.tcl \[sw1|sw2|swg1|swg2|swm\]" - exit 1 -} - -set ipaddress "" -if { $host == "swg1" } { set ipaddress "10.133.26.231" } -if { $host == "swg2" } { set ipaddress "10.133.26.232" } -if { $host == "swm" } { set ipaddress "10.133.28.231" } -if { $host == "sw1" } { set ipaddress "10.133.26.231" } -if { $host == "sw2" } { set ipaddress "10.133.26.232" } -if { $ipaddress == "" } { puts "unknown switch '$host'""; exit 1 } - -spawn screen -c . /dev/ttyUSB0 - -set timeout 5 - -set state 0 -while { $state != 1 } { - expect { - timeout { send "\r" } - -exact ">" { send "enable\r" } - "#" { set state 1 } - "Password:" { send "thales\r" } - eof { send_user "connection to host failed\n"; exit 1 } - } -} - -send "configure terminal\r" -expect "#" { send "interface vlan 1\r" } -expect "#" { send "ip address $ipaddress 255.255.255.0\r" } -expect "#" { send "exit\r" } -expect "#" { send "line vty 0 4\r" } -expect "#" { send "password thales\r" } -expect "#" { send "enable password thales\r" } -expect "#" { send "end\r" } - -# quit switch connection -expect "#" { send "exit\r" } - -# to quit screen we need to send C-a \. -send "\001\\" -expect "kill all your windows" { send "y\r" } - -exit 0 -# vim:set tabstop=4 expandtab shiftwidth=4: diff --git a/trc6500-master-file/script/connect_switch.tcl b/trc6500-master-file/script/connect_switch.tcl deleted file mode 100755 index 5f2299e..0000000 --- a/trc6500-master-file/script/connect_switch.tcl +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/expect - -# ============================================================================ -# -# Copyright (C) THALES. All rights reserved -# Author: Laurent Mazet -# -# Script de connection au switchs -# -# 2013-10-10 V1.0 : Creation -# -# 2014-03-05 V1.1 : LMa ajout de passage de commande CISCO en parametre -# -# 2014-06-10 V1.2 : LMa ajout d'un fichier de commandes -# -# ============================================================================ - -# default value -set adminpassword "thales" -set cmd {} -set host "" -set loginpassword "thales" -set prompt "SW*" - -proc usage {rc} { - puts "usage: connect_switch.tcl \[host\] \[-a adminpassword\] \[-c command\] \[-f file\] \[-h\] \[-l loginpassword\] \[-p prompt\]" - exit $rc -} - -# process argument -set action "" -for {set i 0} {$i < [llength $argv]} {incr i} { - set arg [lindex $argv $i] - switch $arg { - -a { set action "-adminpassword" } - -c { set action "-cmd" } - -f { set action "-file" } - -h { usage 0 } - -l { set action "-loginpassword" } - -p { set action "-prompt" } - default { - switch $action { - -adminpassword { set adminpassword $arg } - -cmd { set cmd [lappend cmd $arg] } - -file { - if {[file isfile $arg] == 1} then { - set f [open $arg "r"] - set data [read $f] - close $f - foreach line [split $data "\n"] { - set cmd [lappend cmd $line] - } - } else { - puts "can't open file '$arg'" - exit 1 - } - } - -loginpassword { set loginpassword $arg } - -prompt { set prompt $arg } - default { set host $arg } - } - set action "" - } - } -} -if {$action != ""} { - puts "missing arguments" - exit 1 -} -if { $host == "" } { - usage 1 -} - -# start connection -spawn telnet $host - -# login password -expect { - "Password:" { send "$loginpassword\r" } - timeout { send_user "connection to host failed\n"; exit 1 } - eof { send_user "connection to host failed\n"; exit 1 } -} - -# admin password -expect { - "$prompt>" { send "enable\r" } - timeout { send_user "connection to host failed\n"; exit 1 } - "Password:" { send_user "invalid login password\n"; exit 1 } -} -expect "Password:" { send "$adminpassword\r" } -expect { - "$prompt#" { send "\r" } - "Password:" { send_user "invalid admin password\n"; exit 1 } -} - -# commands or interactive mode -if {[llength $cmd] == 0 } { - expect "$prompt#" { interact } -} else { - expect "$prompt#" { send "terminal length 0\r" } - for {set i 0} {$i < [llength $cmd]} {incr i} { - expect { - "$prompt#" { send "[lindex $cmd $i]\r" } - "confirm" { send "\r"; continue } - } - } - expect { - "confirm" { send "\r"; expect "$prompt" { send "exit\r" } } - "$prompt" { send "exit\r" } - } - send_user "\n" -} - -exit 0 -# vim:set tabstop=4 shiftwidth=4 softtabstop=4: diff --git a/trc6500-master-file/script/cpumon_lite b/trc6500-master-file/script/cpumon_lite deleted file mode 100755 index ae99371..0000000 --- a/trc6500-master-file/script/cpumon_lite +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/perl - -open PROC_STAT, "; -close PROC_STAT; -my @cpu_stat_t0 = grep {s/^cpu\d+\s//} (@proc_stat); -sleep 1; -open PROC_STAT, "; -close PROC_STAT; -my @cpu_stat_t1 = grep {s/^cpu\d+\s//} (@proc_stat); - -my $total = 0; -for (my $cpu_i=0; $cpu_i<(scalar @cpu_stat_t0); $cpu_i++) { - my @stat_t0 = split /\s+/, $cpu_stat_t0[$cpu_i]; - my @stat_t1 = split /\s+/, $cpu_stat_t1[$cpu_i]; - my ($t0_idle, $t1_idle) = ($stat_t0[3], $stat_t1[3]); - my ($t0_total, $t1_total) = (0, 0); - $t0_total += $_ foreach @stat_t0; - $t1_total += $_ foreach @stat_t1; - - my $load = ($t1_total - $t0_total == 0) ? 100: int((100 * (($t1_total - $t0_total) - ($t1_idle - $t0_idle))/($t1_total - $t0_total)) + 0.5); - print " +" unless ($cpu_i == 0); - printf "% 5.1f%% ", $load; - $total += $load; -} -printf " = % 6.1f%%\n", $total; diff --git a/trc6500-master-file/script/flash_fe306.sh b/trc6500-master-file/script/flash_fe306.sh deleted file mode 100755 index 423b6d4..0000000 --- a/trc6500-master-file/script/flash_fe306.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash - -# parameters -# -# ============================================================================ -# -# Copyright (C) THALES. All rights reserved -# Author: Laurent Mazet -# -# 2014-10-06 V1.0 : Creation -# -# ============================================================================ - -DRY= -FIRMWARE=/opt/trc6500/config/code_metier/libHwCtrl/Bitstream -LIST="application.out production.bin ts12_fp_pano.bin ts22_fp_pano.bin firmware.out" -HOST= -TRC6500_SCRIPT_DIR=$(dirname $0) - -# help function - -function usage () { - echo "usage: $PROGNAME [-d] [-f dir] [-h] [-i host] [-l list]" - echo " -d: dry mode" - echo " -f: firmware directory ($FIRMWARE)" - echo " -h: help message" - echo " -i: board hostname (or ip)" - echo " -l: list of firmware ($LIST)" - exit $@ - } - -# formating functions - -function title () { echo -e "\033[0;1m$*\033[0;0m"; } -function pass () { echo -e "\033[1;32m$*\033[0;0m"; } -function warn () { echo -e "\033[1;33m$*\033[0;0m"; } -function fail () { echo -e "\033[1;31m$*\033[0;0m"; } - -# argument processing - -while [ $# -gt 0 ]; do - case "$1" in - -d) DRY=yes;; - -f) shift; FIRMWARE=$1;; - -h) usage 0;; - -i) shift; HOST=$1;; - -l) shift; LIST=$1;; - *) usage 1;; - esac - shift -done - -# check host - -[ "$HOST" ] || ping -c 1 $HOST >&/dev/null || \ - { fail "Can't connect '$HOST'"; exit 1; } - -# check firmware - -for f in $LIST; do - [ -f $FIRMWARE/$f ] || { fail "Can't find '$FIRMWARE/$f'"; exit 1; } -done - -# check mode - -protect="" -[ "$DRY" = yes ] && protect="!echo" - -# flash firmware - -title "flash fe306 '$HOST'" - -ftp -n <" - -proc usage {script_name rc} { - puts "usage: [exec basename $script_name] \[host\] \[-b blade\] \[-h\] \[-l login\] \[-p password\] \[-x prompt\]" - exit $rc -} - -# process argument -set action "" -for {set i 0} {$i < [llength $argv]} {incr i} { - set arg [lindex $argv $i] - switch $arg { - -b { set action "-blade" } - -h { usage $argv0 0 } - -l { set action "-login" } - -p { set action "-password" } - -x { set action "-prompt" } - default { - switch $action { - -blade { set blade $arg } - -login { set login $arg } - -password { set password $arg } - -prompt { set prompt $arg } - default { set host $arg } - } - set action "" - } - } -} -if {$action != ""} { - puts "missing arguments" - exit 1 -} -if { $host == "" } { - usage $argv0 1 -} - -# start connection -spawn telnet $host - -# login -expect { - "username:" { send "$login\r" } - timeout { send_user "connection to host failed\n"; exit 1 } - eof { send_user "connection to host failed\n"; exit 1 } -} - - -# password -expect { - "password:" { send "$password\r" } - timeout { send_user "connection to host failed\n"; exit 1 } - eof { send_user "connection to host failed\n"; exit 1 } -} - -expect { - "$prompt" { send "mt -b $blade\r" } - "username:" { send_user "connection to host failed\n"; exit 1 } -} - -expect { - "OK" { send "exit\r" } - "$prompt" { send_user "error\n"; exit 1 } -} - -send_user "\n" -exit 0 -# vim:set tabstop=4 shiftwidth=4 softtabstop=4: