raspberry
This commit is contained in:
1 parent
84dfdf5210
commit
be436085b3
55 files changed
+2195
No files matched your search
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
if [ $# -lt 2 ]; then
|
||||
printf "Wrong Usage:\n1...Pin Number\n2...set/reset\n3...0/1\n"
|
||||
exit 0
|
||||
fi
|
||||
printf "Pin: $1\nMode: $2\nValue: $3\n"
|
||||
pin=$1
|
||||
#choose Pin $pin
|
||||
if [ "$2" == "reset" ]; then
|
||||
#reset Pin 17
|
||||
printf "Reset Pin $pin\n"
|
||||
echo "$pin" > /sys/class/gpio/unexport
|
||||
elif [ "$2" == "set" ]; then
|
||||
if [ $# -ne 3 ]; then
|
||||
printf "Set Pin requires: PinNumber, Set, Value\n"
|
||||
exit 0
|
||||
fi
|
||||
echo "$pin" > /sys/class/gpio/export
|
||||
#set direction of GPIO Pin
|
||||
echo "out" > /sys/class/gpio/gpio$pin/direction
|
||||
#set Value of GPIO Pin (0,1)
|
||||
echo "$3" > /sys/class/gpio/gpio$pin/value
|
||||
fi
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
if [ "$1" != "wlan0" ] && [ "$1" != "eth0" ]; then
|
||||
printf "Wrong Interface, \$1 must be eth0 or wlan0\n";
|
||||
exit 0
|
||||
fi
|
||||
if [ "$(whoami)" != "root" ]; then
|
||||
printf "Script must be executed as root\n"
|
||||
exit 0
|
||||
fi
|
||||
if [ "$(/sbin/ifconfig | grep eth0)" != "" ]; then
|
||||
ifdown eth0
|
||||
fi
|
||||
|
||||
if [ "$(/sbin/ifconfig | grep wlan0)" != "" ]; then
|
||||
ifdown wlan0
|
||||
fi
|
||||
cp /etc/network/interfaces.$1 /etc/network/interfaces
|
||||
ifup $1
|
||||
/sbin/ifconfig
|
||||
printf "Network interface has been changed to %s\n" "$1"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
if [ "$(ps -e | grep recieve)" != "" ];then
|
||||
ps -e | grep recieve && tail -n 6 $(ls /home/lucas/.LOG/MS* | tail -n1)
|
||||
else
|
||||
printf "recieveMS inactive\n"
|
||||
fi
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
awk '{s=0;for(i=1;i<=NF;i++) s+=$i;print s}' <<< "1 2 3"
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
hostname=$1
|
||||
|
||||
expect <<'EOF'
|
||||
set target=$hostname
|
||||
spawn ssh lucas@$target
|
||||
set count 0
|
||||
expect {
|
||||
timeout {puts "timeout happened"}
|
||||
eof {puts "eof received"}
|
||||
"$ " {send "sudo /sbin/shutdown -P 0i\r";exp_continue}
|
||||
"Permission denied" {incr count;exp_continue}
|
||||
}
|
||||
|
||||
set results $expect_out(buffer)
|
||||
|
||||
if {[regexp -nocase "Shutdown scheduled" $results]} {
|
||||
puts "[index $argv 0] has been shut down"
|
||||
} else {
|
||||
puts "Failed"
|
||||
}
|
||||
EOF
|
||||
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
|
||||
NETIF=$1
|
||||
if [ "$1" != "eth0" ] && [ "$1" != "all" ] && [ "$1" != "wlan0" ] && [ "$1" != "bond0" ] && [ "$1" != "IF" ]; then
|
||||
printf "Wrong NETIF: $NETIF\neth0, wlan0 or all\n"
|
||||
exit 0
|
||||
fi
|
||||
if [ "$1" == "all" ] || [ "$1" == "bond0" ] || [ "$1" == "IF" ]; then
|
||||
NETIF="eth0"
|
||||
fi
|
||||
if [ "$1" == "wlan0" ] || [ "$1" == "all" ] || [ "$1" == "bond0" ] || [ "$1" == "IF" ]; then
|
||||
echo "wlan power & txpower on"
|
||||
iwconfig wlan0 power on
|
||||
iwconfig wlan0 txpower auto
|
||||
if [ "$(ifconfig | grep wlan0)" == "" ]; then
|
||||
ifup wlan0
|
||||
fi
|
||||
elif [ "$1" == "eth0" ]; then
|
||||
echo "wlan power & txpower off"
|
||||
if [ "$(ifconfig | grep wlan0)" != "" ]; then
|
||||
sudo ifdown wlan0
|
||||
fi
|
||||
iwconfig wlan0 txpower off
|
||||
iwconfig wlan0 power off
|
||||
fi
|
||||
|
||||
echo Flush existing rules
|
||||
ufw disable
|
||||
|
||||
echo Flush
|
||||
iptables -F
|
||||
|
||||
echo Delete
|
||||
iptables -X
|
||||
|
||||
echo Make Rules
|
||||
|
||||
echo Allen verkehr blockieren
|
||||
iptables -P INPUT DROP
|
||||
iptables -P FORWARD DROP
|
||||
iptables -P OUTPUT ACCEPT
|
||||
|
||||
echo loopback $NETIF
|
||||
iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
|
||||
iptables -A OUTPUT -o lo -j ACCEPT
|
||||
|
||||
for i in 1 2 3
|
||||
do
|
||||
|
||||
echo Datenverkehr akzeptieren der zu einer bereits geoeffneten Verbindung gehoert $NETIF
|
||||
iptables -A INPUT -i $NETIF -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
#if [ "$NETIF" != "bond0" ]; then
|
||||
echo Incoming SSH p1160 $NETIF
|
||||
iptables -A INPUT -i $NETIF -p tcp -m state --state NEW -m tcp --dport 1160 -j ACCEPT
|
||||
iptables -A OUTPUT -o $NETIF -p tcp --sport 1160 -m state --state ESTABLISHED -j ACCEPT
|
||||
#else
|
||||
#echo Reject Incoming SSH p1160 $NETIF
|
||||
#iptables -A INPUT -i $NETIF -p tcp -m state --state NEW -m tcp --dport 1160 -j REJECT
|
||||
#iptables -A OUTPUT -o $NETIF -p tcp --sport 1160 -m state --state ESTABLISHED -j REJECT
|
||||
#fi
|
||||
#echo Outgoing SSh P1160 $NETIF
|
||||
#iptables -A OUTPUT -o $NETIF -p tcp --dport 1160 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||
#iptables -A INPUT -i $NETIF -p tcp --sport 1160 -m state --state ESTABLISHED -j ACCEPT
|
||||
|
||||
#echo Outgoing SSH p3032 $NETIF
|
||||
#iptables -A OUTPUT -o $NETIF -p tcp --dport 3032 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||
#iptables -A INPUT -i $NETIF -p tcp --sport 3032 -m state --state ESTABLISHED -j ACCEPT
|
||||
|
||||
#echo Updates - Outgoing Network Traffic $NETIF
|
||||
#iptables -A OUTPUT -o $NETIF -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||
#iptables -A OUTPUT -o $NETIF -p tcp --dport 80 -m state --state NEW -j ACCEPT
|
||||
#iptables -A OUTPUT -o $NETIF -p tcp --dport 53 -m state --state NEW -j ACCEPT
|
||||
#iptables -A OUTPUT -o $NETIF -p udp --dport 53 -m state --state NEW -j ACCEPT
|
||||
|
||||
echo Ping $NETIF
|
||||
iptables -A INPUT -i $NETIF -p icmp --icmp-type echo-request -j ACCEPT
|
||||
iptables -A OUTPUT -o $NETIF -p icmp --icmp-type echo-reply -j ACCEPT
|
||||
iptables -A OUTPUT -o $NETIF -p icmp --icmp-type echo-request -j ACCEPT
|
||||
iptables -A INPUT -i $NETIF -p icmp --icmp-type echo-reply -j ACCEPT
|
||||
|
||||
if [ "$1" == "IF" ] || [ "$1" == "all" ] || [ "$1" == "bond0" ] && [ $i -eq 1 ]; then
|
||||
NETIF="wlan0"
|
||||
elif [ "$1" == "bond0" ] && [ $i -eq 2 ]; then
|
||||
NETIF="bond0"
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
echo Logging
|
||||
iptables -N LOGGING
|
||||
iptables -A INPUT -j LOGGING
|
||||
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
|
||||
iptables -A LOGGING -j DROP
|
||||
|
||||
|
||||
@@ -0,0 +1,541 @@
|
||||
#!/bin/bash
|
||||
|
||||
clear
|
||||
|
||||
function color (){
|
||||
echo "\e[$1m$2\e[0m"
|
||||
}
|
||||
|
||||
function extend (){
|
||||
local str="$1"
|
||||
let spaces=60-${#1}
|
||||
while [ $spaces -gt 0 ]; do
|
||||
str="$str "
|
||||
let spaces=spaces-1
|
||||
done
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function center (){
|
||||
local str="$1"
|
||||
let spacesLeft=(78-${#1})/2
|
||||
let spacesRight=78-spacesLeft-${#1}
|
||||
while [ $spacesLeft -gt 0 ]; do
|
||||
str=" $str"
|
||||
let spacesLeft=spacesLeft-1
|
||||
done
|
||||
|
||||
while [ $spacesRight -gt 0 ]; do
|
||||
str="$str "
|
||||
let spacesRight=spacesRight-1
|
||||
done
|
||||
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function sec2time (){
|
||||
local input=$1
|
||||
|
||||
if [ $input -lt 60 ]; then
|
||||
echo "$input seconds"
|
||||
else
|
||||
((days=input/86400))
|
||||
((input=input%86400))
|
||||
((hours=input/3600))
|
||||
((input=input%3600))
|
||||
((mins=input/60))
|
||||
|
||||
local daysPlural="s"
|
||||
local hoursPlural="s"
|
||||
local minsPlural="s"
|
||||
|
||||
if [ $days -eq 1 ]; then
|
||||
daysPlural=""
|
||||
fi
|
||||
|
||||
if [ $hours -eq 1 ]; then
|
||||
hoursPlural=""
|
||||
fi
|
||||
|
||||
if [ $mins -eq 1 ]; then
|
||||
minsPlural=""
|
||||
fi
|
||||
|
||||
echo "$days day$daysPlural, $hours hour$hoursPlural, $mins minute$minsPlural"
|
||||
fi
|
||||
}
|
||||
|
||||
borderColor=35
|
||||
headerLeafColor=32
|
||||
headerRaspberryColor=31
|
||||
greetingsColor=36
|
||||
statsLabelColor=33
|
||||
|
||||
borderLine="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
borderTopLine=$(color $borderColor "┏$borderLine┓")
|
||||
borderBottomLine=$(color $borderColor "┗$borderLine┛")
|
||||
borderBar=$(color $borderColor "┃")
|
||||
borderEmptyLine="$borderBar $borderBar"
|
||||
|
||||
# Header
|
||||
header="$borderTopLine\n$borderEmptyLine\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " .~~. .~~. ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " '. \ ' ' / .' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " .~ .~~~..~. _ _ ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " : .~.'~'.~. : ___ ___ ___ ___| |_ ___ ___ ___ _ _ ___|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ ( ) ( ) ~ | _| .'|_ -| . | . | -_| _| _| | | | . | | ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~'.~.'~' : ) |_| |__,|___| _|___|___|_| |_| |_ | | _|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ .~ ( ) ~. ~ |_| |___| |_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~' : ) ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~ .~~~. ~' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~' ")$borderBar"
|
||||
|
||||
me=$(whoami)
|
||||
|
||||
# Greetings
|
||||
greetings="$borderBar$(color $greetingsColor "$(center "Welcome back, $me!")")$borderBar\n"
|
||||
greetings="$greetings$borderBar$(color $greetingsColor "$(center "$(date +"%A, %d %B %Y, %T")")")$borderBar"
|
||||
|
||||
# System information
|
||||
read loginFrom loginIP loginDate <<< $(last $me --time-format iso -2 | awk 'NR==2 { print $2,$3,$4 }')
|
||||
|
||||
# TTY login
|
||||
if [[ $loginDate == - ]]; then
|
||||
loginDate=$loginIP
|
||||
loginIP=$loginFrom
|
||||
fi
|
||||
|
||||
if [[ $loginDate == *T* ]]; then
|
||||
login="$(date -d $loginDate +"%A, %d %B %Y, %T") ($loginIP)"
|
||||
else
|
||||
# Not enough logins
|
||||
login="None"
|
||||
fi
|
||||
|
||||
label1="$(extend "$login")"
|
||||
label1="$borderBar $(color $statsLabelColor "Last Login....:") $label1$borderBar"
|
||||
|
||||
uptime="$(sec2time $(cut -d "." -f 1 /proc/uptime))"
|
||||
uptime="$uptime ($(date -d "@"$(grep btime /proc/stat | cut -d " " -f 2) +"%d-%m-%Y %H:%M:%S"))"
|
||||
|
||||
label2="$(extend "$uptime")"
|
||||
label2="$borderBar $(color $statsLabelColor "Uptime........:") $label2$borderBar"
|
||||
|
||||
label3="$(extend "$(free -m | awk 'NR==2 { printf "Total: %sMB, Used: %sMB, Free: %sMB",$2,$3,$4; }')")"
|
||||
label3="$borderBar $(color $statsLabelColor "Memory........:") $label3$borderBar"
|
||||
|
||||
label4="$(extend "$(df -h ~ | awk 'NR==2 { printf "Total: %sB, Used: %sB, Free: %sB",$2,$3,$4; }')")"
|
||||
label4="$borderBar $(color $statsLabelColor "Home space....:") $label4$borderBar"
|
||||
|
||||
label5="$(extend "$(/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9")ºC")"
|
||||
label5="$borderBar $(color $statsLabelColor "Temperature...:") $label5$borderBar"
|
||||
|
||||
stats="$label1\n$label2\n$label3\n$label4\n$label5"
|
||||
|
||||
# Print motd
|
||||
echo -e "$header\n$borderEmptyLine\n$greetings\n$borderEmptyLine\n$stats\n$borderEmptyLine\n$borderBottomLine" #!/bin/bash
|
||||
|
||||
clear
|
||||
|
||||
function color (){
|
||||
echo "\e[$1m$2\e[0m"
|
||||
}
|
||||
|
||||
function extend (){
|
||||
local str="$1"
|
||||
let spaces=60-${#1}
|
||||
while [ $spaces -gt 0 ]; do
|
||||
str="$str "
|
||||
let spaces=spaces-1
|
||||
done
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function center (){
|
||||
local str="$1"
|
||||
let spacesLeft=(78-${#1})/2
|
||||
let spacesRight=78-spacesLeft-${#1}
|
||||
while [ $spacesLeft -gt 0 ]; do
|
||||
str=" $str"
|
||||
let spacesLeft=spacesLeft-1
|
||||
done
|
||||
|
||||
while [ $spacesRight -gt 0 ]; do
|
||||
str="$str "
|
||||
let spacesRight=spacesRight-1
|
||||
done
|
||||
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function sec2time (){
|
||||
local input=$1
|
||||
|
||||
if [ $input -lt 60 ]; then
|
||||
echo "$input seconds"
|
||||
else
|
||||
((days=input/86400))
|
||||
((input=input%86400))
|
||||
((hours=input/3600))
|
||||
((input=input%3600))
|
||||
((mins=input/60))
|
||||
|
||||
local daysPlural="s"
|
||||
local hoursPlural="s"
|
||||
local minsPlural="s"
|
||||
|
||||
if [ $days -eq 1 ]; then
|
||||
daysPlural=""
|
||||
fi
|
||||
|
||||
if [ $hours -eq 1 ]; then
|
||||
hoursPlural=""
|
||||
fi
|
||||
|
||||
if [ $mins -eq 1 ]; then
|
||||
minsPlural=""
|
||||
fi
|
||||
|
||||
echo "$days day$daysPlural, $hours hour$hoursPlural, $mins minute$minsPlural"
|
||||
fi
|
||||
}
|
||||
|
||||
borderColor=35
|
||||
headerLeafColor=32
|
||||
headerRaspberryColor=31
|
||||
greetingsColor=36
|
||||
statsLabelColor=33
|
||||
|
||||
borderLine="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
borderTopLine=$(color $borderColor "┏$borderLine┓")
|
||||
borderBottomLine=$(color $borderColor "┗$borderLine┛")
|
||||
borderBar=$(color $borderColor "┃")
|
||||
borderEmptyLine="$borderBar $borderBar"
|
||||
|
||||
# Header
|
||||
header="$borderTopLine\n$borderEmptyLine\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " .~~. .~~. ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " '. \ ' ' / .' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " .~ .~~~..~. _ _ ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " : .~.'~'.~. : ___ ___ ___ ___| |_ ___ ___ ___ _ _ ___|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ ( ) ( ) ~ | _| .'|_ -| . | . | -_| _| _| | | | . | | ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~'.~.'~' : ) |_| |__,|___| _|___|___|_| |_| |_ | | _|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ .~ ( ) ~. ~ |_| |___| |_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~' : ) ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~ .~~~. ~' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~' ")$borderBar"
|
||||
|
||||
me=$(whoami)
|
||||
|
||||
# Greetings
|
||||
greetings="$borderBar$(color $greetingsColor "$(center "Welcome back, $me!")")$borderBar\n"
|
||||
greetings="$greetings$borderBar$(color $greetingsColor "$(center "$(date +"%A, %d %B %Y, %T")")")$borderBar"
|
||||
|
||||
# System information
|
||||
read loginFrom loginIP loginDate <<< $(last $me --time-format iso 2 | awk 'NR==2 { print $2,$3,$4 }')
|
||||
|
||||
# TTY login
|
||||
if [[ $loginDate == - ]]; then
|
||||
loginDate=$loginIP
|
||||
loginIP=$loginFrom
|
||||
fi
|
||||
|
||||
if [[ $loginDate == *T* ]]; then
|
||||
login="$(date -d $loginDate +"%A, %d %B %Y, %T") ($loginIP)"
|
||||
else
|
||||
# Not enough logins
|
||||
login="None"
|
||||
fi
|
||||
|
||||
label1="$(extend "$login")"
|
||||
label1="$borderBar $(color $statsLabelColor "Last Login....:") $label1$borderBar"
|
||||
|
||||
uptime="$(sec2time $(cut -d "." -f 1 /proc/uptime))"
|
||||
uptime="$uptime ($(date -d "@"$(grep btime /proc/stat | cut -d " " -f 2) +"%d-%m-%Y %H:%M:%S"))"
|
||||
|
||||
label2="$(extend "$uptime")"
|
||||
label2="$borderBar $(color $statsLabelColor "Uptime........:") $label2$borderBar"
|
||||
|
||||
label3="$(extend "$(free -m | awk 'NR==2 { printf "Total: %sMB, Used: %sMB, Free: %sMB",$2,$3,$4; }')")"
|
||||
label3="$borderBar $(color $statsLabelColor "Memory........:") $label3$borderBar"
|
||||
|
||||
label4="$(extend "$(df -h ~ | awk 'NR==2 { printf "Total: %sB, Used: %sB, Free: %sB",$2,$3,$4; }')")"
|
||||
label4="$borderBar $(color $statsLabelColor "Home space....:") $label4$borderBar"
|
||||
|
||||
label5="$(extend "$(/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9")ºC")"
|
||||
label5="$borderBar $(color $statsLabelColor "Temperature...:") $label5$borderBar"
|
||||
|
||||
stats="$label1\n$label2\n$label3\n$label4\n$label5"
|
||||
|
||||
# Print motd
|
||||
echo -e "$header\n$borderEmptyLine\n$greetings\n$borderEmptyLine\n$stats\n$borderEmptyLine\n$borderBottomLine" #!/bin/bash
|
||||
|
||||
clear
|
||||
|
||||
function color (){
|
||||
echo "\e[$1m$2\e[0m"
|
||||
}
|
||||
|
||||
function extend (){
|
||||
local str="$1"
|
||||
let spaces=60-${#1}
|
||||
while [ $spaces -gt 0 ]; do
|
||||
str="$str "
|
||||
let spaces=spaces-1
|
||||
done
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function center (){
|
||||
local str="$1"
|
||||
let spacesLeft=(78-${#1})/2
|
||||
let spacesRight=78-spacesLeft-${#1}
|
||||
while [ $spacesLeft -gt 0 ]; do
|
||||
str=" $str"
|
||||
let spacesLeft=spacesLeft-1
|
||||
done
|
||||
|
||||
while [ $spacesRight -gt 0 ]; do
|
||||
str="$str "
|
||||
let spacesRight=spacesRight-1
|
||||
done
|
||||
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function sec2time (){
|
||||
local input=$1
|
||||
|
||||
if [ $input -lt 60 ]; then
|
||||
echo "$input seconds"
|
||||
else
|
||||
((days=input/86400))
|
||||
((input=input%86400))
|
||||
((hours=input/3600))
|
||||
((input=input%3600))
|
||||
((mins=input/60))
|
||||
|
||||
local daysPlural="s"
|
||||
local hoursPlural="s"
|
||||
local minsPlural="s"
|
||||
|
||||
if [ $days -eq 1 ]; then
|
||||
daysPlural=""
|
||||
fi
|
||||
|
||||
if [ $hours -eq 1 ]; then
|
||||
hoursPlural=""
|
||||
fi
|
||||
|
||||
if [ $mins -eq 1 ]; then
|
||||
minsPlural=""
|
||||
fi
|
||||
|
||||
echo "$days day$daysPlural, $hours hour$hoursPlural, $mins minute$minsPlural"
|
||||
fi
|
||||
}
|
||||
|
||||
borderColor=35
|
||||
headerLeafColor=32
|
||||
headerRaspberryColor=31
|
||||
greetingsColor=36
|
||||
statsLabelColor=33
|
||||
|
||||
borderLine="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
borderTopLine=$(color $borderColor "┏$borderLine┓")
|
||||
borderBottomLine=$(color $borderColor "┗$borderLine┛")
|
||||
borderBar=$(color $borderColor "┃")
|
||||
borderEmptyLine="$borderBar $borderBar"
|
||||
|
||||
# Header
|
||||
header="$borderTopLine\n$borderEmptyLine\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " .~~. .~~. ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " '. \ ' ' / .' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " .~ .~~~..~. _ _ ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " : .~.'~'.~. : ___ ___ ___ ___| |_ ___ ___ ___ _ _ ___|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ ( ) ( ) ~ | _| .'|_ -| . | . | -_| _| _| | | | . | | ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~'.~.'~' : ) |_| |__,|___| _|___|___|_| |_| |_ | | _|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ .~ ( ) ~. ~ |_| |___| |_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~' : ) ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~ .~~~. ~' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~' ")$borderBar"
|
||||
|
||||
me=$(whoami)
|
||||
|
||||
# Greetings
|
||||
greetings="$borderBar$(color $greetingsColor "$(center "Welcome back, $me!")")$borderBar\n"
|
||||
greetings="$greetings$borderBar$(color $greetingsColor "$(center "$(date +"%A, %d %B %Y, %T")")")$borderBar"
|
||||
|
||||
# System information
|
||||
read loginFrom loginIP loginDate <<< $(last $me --time-format iso -2 | awk 'NR==2 { print $2,$3,$4 }')
|
||||
|
||||
# TTY login
|
||||
if [[ $loginDate == - ]]; then
|
||||
loginDate=$loginIP
|
||||
loginIP=$loginFrom
|
||||
fi
|
||||
|
||||
if [[ $loginDate == *T* ]]; then
|
||||
login="$(date -d $loginDate +"%A, %d %B %Y, %T") ($loginIP)"
|
||||
else
|
||||
# Not enough logins
|
||||
login="None"
|
||||
fi
|
||||
|
||||
label1="$(extend "$login")"
|
||||
label1="$borderBar $(color $statsLabelColor "Last Login....:") $label1$borderBar"
|
||||
|
||||
uptime="$(sec2time $(cut -d "." -f 1 /proc/uptime))"
|
||||
uptime="$uptime ($(date -d "@"$(grep btime /proc/stat | cut -d " " -f 2) +"%d-%m-%Y %H:%M:%S"))"
|
||||
|
||||
label2="$(extend "$uptime")"
|
||||
label2="$borderBar $(color $statsLabelColor "Uptime........:") $label2$borderBar"
|
||||
|
||||
label3="$(extend "$(free -m | awk 'NR==2 { printf "Total: %sMB, Used: %sMB, Free: %sMB",$2,$3,$4; }')")"
|
||||
label3="$borderBar $(color $statsLabelColor "Memory........:") $label3$borderBar"
|
||||
|
||||
label4="$(extend "$(df -h ~ | awk 'NR==2 { printf "Total: %sB, Used: %sB, Free: %sB",$2,$3,$4; }')")"
|
||||
label4="$borderBar $(color $statsLabelColor "Home space....:") $label4$borderBar"
|
||||
|
||||
label5="$(extend "$(/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9")ºC")"
|
||||
label5="$borderBar $(color $statsLabelColor "Temperature...:") $label5$borderBar"
|
||||
|
||||
stats="$label1\n$label2\n$label3\n$label4\n$label5"
|
||||
|
||||
# Print motd
|
||||
echo -e "$header\n$borderEmptyLine\n$greetings\n$borderEmptyLine\n$stats\n$borderEmptyLine\n$borderBottomLine" #!/bin/bash
|
||||
|
||||
clear
|
||||
|
||||
function color (){
|
||||
echo "\e[$1m$2\e[0m"
|
||||
}
|
||||
|
||||
function extend (){
|
||||
local str="$1"
|
||||
let spaces=60-${#1}
|
||||
while [ $spaces -gt 0 ]; do
|
||||
str="$str "
|
||||
let spaces=spaces-1
|
||||
done
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function center (){
|
||||
local str="$1"
|
||||
let spacesLeft=(78-${#1})/2
|
||||
let spacesRight=78-spacesLeft-${#1}
|
||||
while [ $spacesLeft -gt 0 ]; do
|
||||
str=" $str"
|
||||
let spacesLeft=spacesLeft-1
|
||||
done
|
||||
|
||||
while [ $spacesRight -gt 0 ]; do
|
||||
str="$str "
|
||||
let spacesRight=spacesRight-1
|
||||
done
|
||||
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
function sec2time (){
|
||||
local input=$1
|
||||
|
||||
if [ $input -lt 60 ]; then
|
||||
echo "$input seconds"
|
||||
else
|
||||
((days=input/86400))
|
||||
((input=input%86400))
|
||||
((hours=input/3600))
|
||||
((input=input%3600))
|
||||
((mins=input/60))
|
||||
|
||||
local daysPlural="s"
|
||||
local hoursPlural="s"
|
||||
local minsPlural="s"
|
||||
|
||||
if [ $days -eq 1 ]; then
|
||||
daysPlural=""
|
||||
fi
|
||||
|
||||
if [ $hours -eq 1 ]; then
|
||||
hoursPlural=""
|
||||
fi
|
||||
|
||||
if [ $mins -eq 1 ]; then
|
||||
minsPlural=""
|
||||
fi
|
||||
|
||||
echo "$days day$daysPlural, $hours hour$hoursPlural, $mins minute$minsPlural"
|
||||
fi
|
||||
}
|
||||
|
||||
borderColor=35
|
||||
headerLeafColor=32
|
||||
headerRaspberryColor=31
|
||||
greetingsColor=36
|
||||
statsLabelColor=33
|
||||
|
||||
borderLine="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
borderTopLine=$(color $borderColor "┏$borderLine┓")
|
||||
borderBottomLine=$(color $borderColor "┗$borderLine┛")
|
||||
borderBar=$(color $borderColor "┃")
|
||||
borderEmptyLine="$borderBar $borderBar"
|
||||
|
||||
# Header
|
||||
header="$borderTopLine\n$borderEmptyLine\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " .~~. .~~. ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerLeafColor " '. \ ' ' / .' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " .~ .~~~..~. _ _ ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " : .~.'~'.~. : ___ ___ ___ ___| |_ ___ ___ ___ _ _ ___|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ ( ) ( ) ~ | _| .'|_ -| . | . | -_| _| _| | | | . | | ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~'.~.'~' : ) |_| |__,|___| _|___|___|_| |_| |_ | | _|_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ~ .~ ( ) ~. ~ |_| |___| |_| ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " ( : '~' : ) ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~ .~~~. ~' ")$borderBar\n"
|
||||
header="$header$borderBar$(color $headerRaspberryColor " '~' ")$borderBar"
|
||||
|
||||
me=$(whoami)
|
||||
|
||||
# Greetings
|
||||
greetings="$borderBar$(color $greetingsColor "$(center "Welcome back, $me!")")$borderBar\n"
|
||||
greetings="$greetings$borderBar$(color $greetingsColor "$(center "$(date +"%A, %d %B %Y, %T")")")$borderBar"
|
||||
|
||||
# System information
|
||||
read loginFrom loginIP loginDate <<< $(last $me --time-format iso -2 | awk 'NR==2 { print $2,$3,$4 }')
|
||||
|
||||
# TTY login
|
||||
if [[ $loginDate == - ]]; then
|
||||
loginDate=$loginIP
|
||||
loginIP=$loginFrom
|
||||
fi
|
||||
|
||||
if [[ $loginDate == *T* ]]; then
|
||||
login="$(date -d $loginDate +"%A, %d %B %Y, %T") ($loginIP)"
|
||||
else
|
||||
# Not enough logins
|
||||
login="None"
|
||||
fi
|
||||
|
||||
label1="$(extend "$login")"
|
||||
label1="$borderBar $(color $statsLabelColor "Last Login....:") $label1$borderBar"
|
||||
|
||||
uptime="$(sec2time $(cut -d "." -f 1 /proc/uptime))"
|
||||
uptime="$uptime ($(date -d "@"$(grep btime /proc/stat | cut -d " " -f 2) +"%d-%m-%Y %H:%M:%S"))"
|
||||
|
||||
label2="$(extend "$uptime")"
|
||||
label2="$borderBar $(color $statsLabelColor "Uptime........:") $label2$borderBar"
|
||||
|
||||
label3="$(extend "$(free -m | awk 'NR==2 { printf "Total: %sMB, Used: %sMB, Free: %sMB",$2,$3,$4; }')")"
|
||||
label3="$borderBar $(color $statsLabelColor "Memory........:") $label3$borderBar"
|
||||
|
||||
label4="$(extend "$(df -h ~ | awk 'NR==2 { printf "Total: %sB, Used: %sB, Free: %sB",$2,$3,$4; }')")"
|
||||
label4="$borderBar $(color $statsLabelColor "Home space....:") $label4$borderBar"
|
||||
|
||||
label5="$(extend "$(/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9")ºC")"
|
||||
label5="$borderBar $(color $statsLabelColor "Temperature...:") $label5$borderBar"
|
||||
|
||||
stats="$label1\n$label2\n$label3\n$label4\n$label5"
|
||||
|
||||
# Print motd
|
||||
echo -e "$header\n$borderEmptyLine\n$greetings\n$borderEmptyLine\n$stats\n$borderEmptyLine\n$borderBottomLine" OA
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
args=("$@")
|
||||
norm="\e[0m"
|
||||
blue="\e[34m"
|
||||
red="\e[31m"
|
||||
|
||||
printf "%s \t[$blue UP $norm]\n" "$(hostname)"
|
||||
for ((i=0; i < $#; i++))
|
||||
{
|
||||
ping -c 2 -W 1 -q ${args[$i]} 1>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
printf "%s \t[$blue UP $norm]\n" "${args[$i]}"
|
||||
else
|
||||
printf "%s \t[$red DOWN $norm]\n" "${args[$i]}"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
if [ "$1" == "ON" ];then
|
||||
irsend SEND_ONCE SAMSUNG KEY_1;
|
||||
elif [ "$1" == "OFF" ];then
|
||||
irsend SEND_ONCE SAMSUNG KEY_POWER;
|
||||
elif [ "$1" == "-a" ];then
|
||||
irsend SEND_ONCE SAMSUNG $2;
|
||||
elif [ "$1" == "-l" ]; then
|
||||
irsend LIST SAMSUNG ""
|
||||
else
|
||||
printf "ON...Turn TV ON\nOFF...Turn TV OFF\n-a...Send Command\n-l...List Commands\n"
|
||||
fi
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
# 11:30 pm
|
||||
/home/lucas/Documents/Dokumente/Dokumente/Projekte/Server/scripts/wol.sh serverhost
|
||||
# 00:01 am
|
||||
/home/lucas/Documents/Dokumente/Dokumente/Projekte/Server/scripts/wol.sh serverhost
|
||||
/home/lucas/Documents/Dokumente/Dokumente/Projekte/Server/scripts/wol.sh workhost
|
||||
# 00:10
|
||||
ssh serverhost /home/lucas/scripts/smartctl_long.sh
|
||||
ssh serverhost /home/lucas/scripts/backup_all.sh
|
||||
ssh serverhost /home/lucas/scripts/upgrade.sh
|
||||
# 5:00
|
||||
ssh serverhost /home/lucas/scripts/smartctl_send_results.sh
|
||||
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/expect -f
|
||||
log_user 0
|
||||
if { [llength $argv]==0 } {
|
||||
puts "Hostname missing\n(all,tv,pc,serverhost,quiethost)"
|
||||
exit 0
|
||||
}
|
||||
set color [lindex $argv 1]
|
||||
if { $color == "-c" } {
|
||||
set red "\033\[1;31m"
|
||||
set blue "\033\[1;34m"
|
||||
set norm "\033\[1;0m"
|
||||
} else {
|
||||
set red ""
|
||||
set blue ""
|
||||
set norm ""
|
||||
}
|
||||
set ret1 ""
|
||||
array set host { 0 "serverhost" 1 "quiethost" }
|
||||
array set user { 0 "lucas" 1 "lucas" }
|
||||
array set port { 0 "3032" 1 "1504"}
|
||||
set TARGET [lindex $argv 0]
|
||||
set start 0
|
||||
set end -1
|
||||
if { ${TARGET} == "all" || ${TARGET} == "pc" } {
|
||||
set start 0
|
||||
set end 1
|
||||
} elseif { ${TARGET} == "serverhost" } {
|
||||
set start 0
|
||||
set end 0
|
||||
} elseif { ${TARGET} == "quiethost" } {
|
||||
set start 1
|
||||
set end 1
|
||||
} else {
|
||||
puts "Target ${TARGET} not known"
|
||||
exit 0
|
||||
}
|
||||
#if {[string match 10.0.0.26* $env(SSH_CLIENT)]} {
|
||||
# exec ssh -o ConnectTimeout=4 -p 1504 lucas@quiethost notify-send "Shutdown ${TARGET}"
|
||||
#}
|
||||
for {set i $start} {$i <= $end} {incr i 1} {
|
||||
spawn ssh -o ConnectTimeout=4 -p $port($i) $user($i)@$host($i)
|
||||
expect {
|
||||
"Connection timed out" {
|
||||
puts "$host($i)\t\[${red} FAIL ${norm}\]"
|
||||
}
|
||||
"$ " {
|
||||
send "cat /home/lucas/.auto_shutdown\r"
|
||||
expect "$ "
|
||||
set ret $expect_out(buffer)
|
||||
if {[string match *no* $ret ]} {
|
||||
puts "Shutdown disabled! $host($i) Shutdown aborted!"
|
||||
exit 0
|
||||
} else {
|
||||
puts "Shutdown enabled"
|
||||
}
|
||||
send "ps -elf | grep scripts/backup | grep -v grep\r"
|
||||
expect "$ "
|
||||
set ret $expect_out(buffer)
|
||||
if {[string match *bash* $ret ]} {
|
||||
puts "Backup in Progress! $host($i) Shutdown aborted!"
|
||||
exit 0
|
||||
} else {
|
||||
puts "No Backup in Progress"
|
||||
}
|
||||
send "ps -elf | grep scripts/upgrade | grep -v grep\r"
|
||||
expect "$ "
|
||||
set ret $expect_out(buffer)
|
||||
if {[string match *bash* $ret ]} {
|
||||
puts "Update in Progress! $host($i) Shutdown aborted!"
|
||||
exit 0
|
||||
} else {
|
||||
puts "No Update in Progress"
|
||||
}
|
||||
send "sudo /sbin/shutdown -P 1 +6\r"
|
||||
#send "echo Shutdown\r"
|
||||
expect "$ "
|
||||
set ret $expect_out(buffer)
|
||||
send "exit\r"
|
||||
expect "$ "
|
||||
set ret1 [exec echo $ret | grep -o "Shutdown scheduled"]
|
||||
}
|
||||
}
|
||||
if {$ret1 == "Shutdown scheduled"} {
|
||||
puts "$host($i)\t\[${blue} DOWN${norm} ]"
|
||||
if {[string match 10.0.0.26* $env(SSH_CLIENT)]} {
|
||||
exec ssh -o ConnectTimeout=4 -p 1504 lucas@quiethost notify-send "Shutdown SUCESSFULL for ${TARGET}"
|
||||
}
|
||||
} else {
|
||||
puts "$host($i)\t\[${red} FAIL${norm} ]"
|
||||
if {[string match 10.0.0.26* $env(SSH_CLIENT)]} {
|
||||
exec ssh -o ConnectTimeout=4 -p 1504 lucas@quiethost notify-send "Shutdown FAILED for ${TARGET}"
|
||||
}
|
||||
}
|
||||
}
|
||||
if { ${TARGET} == "quiethost-win" } {
|
||||
spawn ssh -o ConnectTimeout=6 -p 1504 LF@quiethost
|
||||
expect {
|
||||
"Connection timed out" {
|
||||
puts "quiethost\t\[ ${red} FAIL ${norm} ]"
|
||||
}
|
||||
"LF>" {
|
||||
send "shutdown /p\r"
|
||||
expect {
|
||||
"LF>Received disconnect" {
|
||||
puts "quiethost\t\[${blue} DOWN${norm} ]"
|
||||
send "exit\r"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if { ${TARGET} == "all" || ${TARGET} == "tv" } {
|
||||
spawn bash /home/lucas/Raspberry/scripts/samsung_remote.sh OFF
|
||||
puts "TV\t\[ ${blue} DOWN${norm} ]"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
mem="$(free -m | awk 'NR==2 { printf "Total: %sMB, Used: %sMB, Free: %sMB",$2,$3,$4; }')"
|
||||
|
||||
mem="Memory........: $mem"
|
||||
|
||||
space="$(df -h ~ | awk 'NR==2 { printf "Total: %sB, Used: %sB, Free: %sB",$2,$3,$4; }')"
|
||||
space="Home space....: $space"
|
||||
|
||||
temp="$(/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9") ºC"
|
||||
temp="Temperature...: $temp"
|
||||
|
||||
echo $mem
|
||||
echo $space
|
||||
echo $temp
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
nextcloudcmd --path Dokumente/Dokumente/Projekte/Server /home/lucas/Documents/Dokumente/Projekte/Server https://lucas:$(cat /home/lucas/.PW)@someoneslinux.ddns.net
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
scp -r -P1160 Raspberry workhost:~/Documents/Dokumente/Dokumente/Projekte/Server/Raspberry
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
#wake Serverhost
|
||||
printf "Wake Serverhost\n"
|
||||
bash /home/lucas/Raspberry/scripts/wol.sh ec:a8:6b:8b:cc:04
|
||||
for i in {1..60}; do
|
||||
printf " %s " "$i"
|
||||
sleep 0.3
|
||||
printf "."
|
||||
sleep 0.3
|
||||
printf "."
|
||||
sleep 0.3
|
||||
done
|
||||
printf "\nTrigger Timesync script\n"
|
||||
ssh -p 3032 lucas@serverhost 'bash /home/lucas/scripts/time_rasp.sh'
|
||||
for i in {1..5}; do
|
||||
printf " %s " "$i"
|
||||
sleep 0.3
|
||||
printf "."
|
||||
sleep 0.3
|
||||
printf "."
|
||||
sleep 0.3
|
||||
done
|
||||
printf "\nShutdown Serverhost\n"
|
||||
/usr/bin/expect /home/lucas/Raspberry/scripts/shutdown.sh serverhost
|
||||
printf "Date has been actualized: %s\n" "$(date)"
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
echo "Toggling between lirc0/lirc1..."
|
||||
grep lirc0 /etc/lirc/lirc_options.conf
|
||||
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Switching from lirc1 to lirc0"
|
||||
sudo sed -i 's/lirc1/lirc0/g' /etc/lirc/lirc_options.conf
|
||||
else
|
||||
echo "Switching from lirc0 to lirc1"
|
||||
sudo sed -i 's/lirc0/lirc1/g' /etc/lirc/lirc_options.conf
|
||||
fi
|
||||
sudo service lircd restart
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
> /etc/motd
|
||||
sudo apt-get update > /dev/null 2>&1
|
||||
upgrades=$(sudo apt-get -s dist-upgrade | grep upgraded, | awk '{ printf "%i",$1; }')
|
||||
install=$(sudo apt-get -s dist-upgrade | grep 'newly installed' | awk '{ printf "%i",$3; }')
|
||||
distupgrades=$(sudo apt-get -s dist-upgrade | grep upgraded, | awk '{ printf "%i",$1; }')
|
||||
distupgrades=$((10#$distupgrades - 10#$upgrades))
|
||||
remove=$(sudo apt-get -s autoremove | grep upgraded, | awk '{ printf "%i",$6; }')
|
||||
echo $upgrades packages can be updated. >> /etc/motd
|
||||
echo $install packages will be newly installed. >> /etc/motd
|
||||
echo $distupgrades dist-packages can be updated. >> /etc/motd
|
||||
echo $remove packages can be removed. >> /etc/motd
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
sudo apt -y update
|
||||
sudo apt -y upgrade
|
||||
sudo apt -y dist-upgrade
|
||||
sudo apt -y autoclean
|
||||
sudo apt -y autoremove
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
ssh quiethost bash /home/lucas/scripts/wallpaperChanger.sh -X
|
||||
Reference in new issue
Block a user