crontab:bash
#!/bin/bash step=$1 #每多少秒執行一次 for (( i = 0; i < 60000000000; i=(i+step) )); do date +%Y%m%d' '%H:%M:%S >>/home/xiluhua/procNum.txt ps -ef|grep memcached | grep 11211 >> /home/xiluhua/procNum.txt printf "\n" >> /home/xiluhua/procNum.txt sleep $step done
log backup:less
#!/bin/bash #author:xiluhua #since:20160619 ##################################################################### # $1:the frequency to do log backup # $2:only if the number of log files reach v_count,log files will be backuped # $3:target directory that needs to do log backup # $4:the directory to put bakuped logs ##################################################################### v_step=$1 v_count=$2 v_targDir=$3 v_histDir=$4 if [ -z $v_targDir ] then echo "exception: argu 'v_targDir' is empty!" exit fi if [ -d $v_targDir ] then # do nothing echo > /dev/null else echo "exception: argu 'v_targDir' is not exist!" exit fi if [ -z $v_histDir ] then echo "exception: argu 'v_histDir' is empty!" exit fi if [ -d $v_histDir ] then # this is the key step to make the .gz file without directory cd $v_histDir else echo "exception: argu 'v_histDir' is not exist!" exit fi if [ -z $v_step ] then echo "v_step is empty!" exit fi if [ -z $v_count ] then echo "exception: argu 'v_count' is empty!" exit fi let isProcExist=0 # recycle endlessly while [ "1" = "1" ] do # if same job process already exists,sleep sometime while [ "1" = "1" ] do if [ $isProcExist -gt 0 ] then sleep $v_step else break fi done let isProcExist=1 files=$(find $v_targDir -name "*.log") count=$(ls $files | wc -l) #echo "count:"$count #echo "v_count:"$v_count if [ $count -ge $v_count ] then dir=$(date +%Y%m%d'_'%H%M%S) # give the value to bakDir bakDir=$dir mkdir $bakDir mv $files $bakDir #echo $bakDir'.tar.gz' tar -Pczf $bakDir'.tar.gz' $bakDir if [ $bakDir = "/" ] then clear else rm -r $bakDir fi fi sleep $v_step let isProcExist=0 done
autoCreateFile:memcached
#!/bin/bash #author:xiluhua #since:20160619 v_step=$1 if [ -z $v_step ] then echo "exception: argu 'v_step' is empty!" exit fi cd ~/auto for (( i = 0; i < 60000000000; i=(i+step) )); do file1=$(date +%Y%m%d'_'%H%M%S)'_1.log' file2=$(date +%Y%m%d'_'%H%M%S)'_2.log' file3=$(date +%Y%m%d'_'%H%M%S)'_3.log' touch $file1 $file2 $file3 sleep $v_step done
batchRename:this
#!/bin/bash #author:xiluhua #since:20160619 ##################################################################### # $1:the dir to do batch file rename # $2:name before rename # $3:name after rename ##################################################################### dir=$1 targ=$2 repl=$3 #check arguments is not empty and valid if [ -z $dir ] then echo "exception: argu 'dir' is empty!" exit fi if [ $dir = "/" ] then echo "exception: argu 'dir' is invalid!" exit fi if [ -d $dir ] then cd $dir else echo "exception: argu 'dir' is not exist!" exit fi if [ -z $targ ] then echo "exception: argu 'targ' is empty!" exit fi if [ -z $repl ] then echo "exception: argu repl is empty!" exit fi # begin the main business for i in $(ls *."$targ");do # echo $i tmp=${i/"$targ"/"$repl"} # echo $tmp mv -f $i $tmp done