• Nov 17, 2021 •LeifMessinger
0 likes • 6 views
#!/bin/bash #Takes command line arguments and pulls the header files. #Good for checking if the function you want is in the header or not. #cppToStdout.sh "time.h" while [ "$1" != "" ]; do echo "#include<$1>" | g++ -x c++ -E - shift done
• Dec 23, 2024 •AustinLeath
0 likes • 27 views
#!/bin/bash # RCLONE BACKUP SCRIPT (using ionice) # Type crontab -e and copy the line below without the # # 0 0 * * * ionice -c 3 /home/owner/backup.sh >/dev/null 2>&1 nowdate=$(date -u) # OPTIONS WEBHOOK="YOUR_DISCORD_WEBHOOK_LINK_HERE" LOGFILE="/root/backup.log" FROM="/path/where/you/backup/from" TO="backblaze:BucketName/FolderName" SERVERNAME="Server Name" echo "$SERVERNAME started a backup - $nowdate" | tee -a $LOGFILE curl --data "content=$SERVERNAME started a backup - $nowdate" $WEBHOOK | tee -a $LOGFILE && echo "" >> $LOGFILE if pidof -o %PPID -x "backup.sh" then echo "Failed backup attempt on $SERVERNAME - $nowdate (rclone already running)" | tee -a $LOGFILE curl --data "content=Failed backup attempt on $SERVERNAME - $nowdate (rclone already running)" $WEBHOOK | tee -a $LOGFILE exit 1 fi rclone sync $FROM $TO -P --b2-hard-delete --stats 5s --progress | sed 's/Transferred:/\n\nTransferred:/' | tee -a $LOGFILE enddate=$(date -u) endtime=$(date +'%T') echo "Completed backup on $SERVERNAME - $enddate" | tee -a $LOGFILE curl -F "content=Completed backup on $SERVERNAME - $enddate" -F upload=@"$LOGFILE" $WEBHOOK | tee -a $LOGFILE if [ -f $LOGFILE ] then rm $LOGFILE fi
• Oct 15, 2022 •CodeCatch
0 likes • 145 views
awk '\ { for (i=1; i<=NF; i++) { ++D[$i]; } }\ END { for (i in D) { print i, D[i] } }\ ' words.txt | sort -nr -k 2
• May 20, 2024 •AustinLeath
0 likes • 13 views
#!/bin/sh BAT_LOW=15 BAT_CRITICAL=5 if [ "$1" = "--help" ] then printf " Usage: \tbattery_check.sh warning%% hibernate%% Description: \tA script for notifying the user via dunst and logging when \tthe battery is low and the system is going to hibernate. \tCan be supplied arguments for the battery low warning and \thibernation percentage thresholds as the first and second arguments. \t Default behavior is to warn at 15% and hibernate at 5%." exit fi if [[ -n "$1" && -n "$2" && $1 -gt $2 ]] then BAT_LOW=$1 BAT_CRITICAL=$2 fi acpi -b | awk -F'[,:%]' '{print $2, $3}' | { read -r status capacity echo Low threshold: $BAT_LOW, Hibernate threshold: $BAT_CRITICAL echo Status: $status, Capacity: $capacity if [ "$status" = Discharging -a "$capacity" -le $BAT_CRITICAL ]; then echo Battery critical threshold. dunstify -u critical "Critical battery threshold, hibernating..." logger "Critical battery threshold, hibernating..." sleep .5 systemctl hibernate exit fi if [ "$status" = Discharging -a "$capacity" -le $BAT_LOW ]; then echo Battery low threshold. dunstify -u critical 'Battery low! System will hibernate at 5%.' logger 'Battery low! System will hibernate at 5%.' sleep .5 light -S 15 exit fi }
• Sep 29, 2021 •LeifMessinger
0 likes • 29 views
#!/bin/bash #cpcmd.sh [file1 [file2...]] #Prints out the commands needed to copy the file to your local machine #This will work on any server that also has the same hostname as in your hosts file. #I should update this to detect if a file is a directory, and enable recursion for those commands. If you do it now, it will probably just warn you. if [ -n "$1" ]; then for arg; do recursive=$(if [[ -d $arg ]]; then printf " -r"; fi) printf "scp$recursive \"$(whoami)@$(hostname):" printf `readlink -f $arg` printf "\" .\n" done else echo "scp \"$(whoami)@$(hostname):$PWD/*\" ." fi #-----------EDIT: #On the UNT cell machines, you have to do this script instead ##!/bin/bash #if [ -n "$1" ]; then # for arg; do # recursive=$(if [[ -d $arg ]]; then printf " -r"; fi) # printf "scp$recursive $(whoami)@$(hostname).eng.unt.edu:" # printf `readlink -f $arg` # printf " .\n" # done #else # echo "scp $(whoami)@$(hostname).eng.unt.edu:$PWD/* ." #fi
• Jan 12, 2023 •LeifMessinger
0 likes • 3 views
#!/bin/bash #Originally made by Isaac Cook https://gist.github.com/icook/5400173 #Modified by Leif Messinger #upload_key.sh [server_ip [server2_ip [...]]] #To be run locally on a linux computer if [ -e ~/.ssh/id_rsa.pub ]; then echo "SSH Key already exists on local machine" else echo "Generating SSH key on local machine" ssh-keygen -t rsa #generates id_rsa and id_rsa.pub chmod -R 700 ~/.ssh #Sets permissions of ssh folder ssh-add #Adds keys (and passwords?) to ssh_agent. (hopefully doesn't require password) fi echo "Loading client public key into memory" pubKey=$(<~/.ssh/id_rsa.pub) for server do echo "Adding client public key to $server remote server authorized keys" #Idiot Isaac Cook didn't know about ssh-copy-id #ssh-copy-id even checks if your key already exists #In fairness, I didn't either until researching ssh-add ssh-copy-id -i ~/.ssh/id_rsa.pub $server #In theory, this should prompt for a username #ssh $server "mkdir -p ~/.ssh; #Make the folder if not already made # echo \"$pubKey\" >> ~/.ssh/authorized_keys; #Append your public key to the server's authorized_keys # chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" #Set the correct permissions of those files #echo "Adding server public key to local authorized keys" #ssh $server "ssh-copy-id -i ~/.ssh/id_rsa.pub \$SSH_CLIENT" #this might need some awk, as $SSH_CLIENT spits out clientip portnumber echo "Displaying server public key" ssh $server "cat ~/.ssh/id_rsa.pub" #Though, he did give me a good idea echo "Displaying keys authorized on $server (you can paste them in your authorized_keys file)" ssh $server "cat ~/.ssh/authorized_keys" #echo "Appending keys authorized on $server to your local authorized_keys" #ssh $server "cat ~/.ssh/authorized_keys" >> ~/.ssh/authorized_keys done echo "SSH keys schronized successfully!"