raspberry

This commit is contained in:
Lucas Faber authored and Lucas Vivohost committed 2026-09-14 09:20:47 +02:00
1 parent 84dfdf5210
commit be436085b3
55 files changed
+2195

No files matched your search

+23
View File
@@ -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
+20
View File
@@ -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"
+6
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
awk '{s=0;for(i=1;i<=NF;i++) s+=$i;print s}' <<< "1 2 3"
+23
View File
@@ -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
+96
View File
@@ -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
+541
View File
@@ -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
+17
View File
@@ -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
}
+12
View File
@@ -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
+116
View File
@@ -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} ]"
}
+15
View File
@@ -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
+2
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
scp -r -P1160 Raspberry workhost:~/Documents/Dokumente/Dokumente/Projekte/Server/Raspberry
+25
View File
@@ -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)"
+13
View File
@@ -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
+13
View File
@@ -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
+6
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
ssh quiethost bash /home/lucas/scripts/wallpaperChanger.sh -X