Register now and start sharing your code snippets.
Using expect for automation of bulk scp copying.
Shell Script (Bash) posted about 1 month ago by marko
Expect can come in handy when you can’t configure ssh public key authentication on the servers :) (and the system “architect” hasn’t yet realized the wonderfulness of a log host).
1 #!/bin/bash 2 # 3 # Usage: script <username> <password> <build> 4 # 5 # Example ./copy_logs_from_production.sh marko hubbabubba current 6 # 7 8 username=$1 9 password=$2 10 build=$3 11 mkdir $build 12 13 instance_1_server=10.0.0.1 14 instance_2_server=10.0.0.1 15 instance_3_server=10.0.0.2 16 instance_4_server=10.0.0.2 17 instance_5_server=10.0.0.3 18 instance_6_server=10.0.0.3 19 instance_7_server=10.0.0.4 20 instance_8_server=10.0.0.4 21 instance_9_server=10.0.0.5 22 23 servers=("$instance_1_server" "$instance_2_server" "$instance_3_server" "$instance_4_server" "$instance_5_server" "$instance_6_server" "$instance_7_server" "$instance_8_server" "$instance_9_server" ) 24 i=1 25 for server in ${servers[@]}; do 26 expect -c " 27 # exp_internal 1 # uncomment for debugging 28 spawn /usr/bin/scp $username@$server:/var/logs/application/$build/server${i}/error.log $build/error-${i}.log 29 expect { 30 "*password:*" { send $password\r\n; interact } 31 eof { exit } 32 } 33 exit 34 " 35 let "i=i+1" 36 done 37
Work around for "bash: /bin/rm: Argument list too long"
Shell Script (Bash) posted 2 months ago by christian
Use find instead of rm:
1 find . -name '*' | xargs rm
The command deletes all files in the current directory.
Remove ID3 tags from MP3 files recursively.
Shell Script (Bash) posted 7 months ago by marko
Remove id3 tags from MP3 files recursively.
1 #!/bin/bash 2 # By Marko Haapala 3 # requirements: 4 # id3ed - apt-get install id3ed 5 IFS=$'\n' 6 for mp3_file in $(find ./ -type f -iname '*.mp3'); do 7 id3ed -r "${mp3_file}" 8 done
Converting WMA files to MP3 on Linux
Shell Script (Bash) posted 7 months ago by marko
Use this to convert WMA files to MP3 in Linux.
1 #!/bin/bash 2 # By Marko Haapala 3 # converts wma to mp3 recursively. does not delete any static files, so 4 # cleanup and renaming is needed afterwards. 5 # 6 # requirements: 7 # lame - http://lame.sourceforge.net/download.php 8 # mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html 9 10 11 current_directory=$(pwd) 12 wma_files=$(find "${current_directory}" -type f -iname "*.wma") 13 # Need to change IFS or files with filenames containing spaces will not 14 # be handled correctly by for loop 15 IFS=$'\n' 16 for wma_file in ${wma_files}; do 17 mplayer -vo null -vc dummy -af resample=44100 \ 18 -ao pcm -ao pcm:waveheader "${wma_file}" && lame -m s \ 19 audiodump.wav -o "${wma_file}".mp3 20 rm audiodump.wav 21 done
Check if a file or directory exists with bash
Shell Script (Bash) posted 10 months ago by christian
This script tests if nginx exists and is executable. The script prints a warning and exits, if nginx doesn’t exists or isn’t executable:
1 DAEMON=/usr/local/sbin/nbinx 2 if [ ! -x $DAEMON ] 3 then 4 echo "Couldn't find $DAEMON. Please set path to DAEMON." 5 exit 0 6 fi
See man test for more information on how to use the test command.