Bash: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Новая: ==Работа с файлами содержащими пробелы== #!/bin/bash OLD_IFS=$IFS IFS=$(echo "") for i in $(ls *.odt) do echo "$i" done IFS=$OLD_IFS (11:31:41) ...)
 
Строка 12: Строка 12:
 
(11:31:41) Юрий Азовцев: переопределяем переменную окружения IFS (она содержит символ - разделения слов в строке), меняем его на символ \n - перевода на новую строку - и все хокей
 
(11:31:41) Юрий Азовцев: переопределяем переменную окружения IFS (она содержит символ - разделения слов в строке), меняем его на символ \n - перевода на новую строку - и все хокей
  
====
+
==Загрузка файла с хоста уменьшающего скорость==
 +
 
 +
#!/bin/bash
 +
#antishaper.sh
 +
for i in $(seq 1 100)
 +
do
 +
wget -c $1 & 
 +
wget_pid=$!
 +
sleep 20s #ожидаем 20 секунд
 +
ps ux | grep $wget_pid | grep wget
 +
if [ $? -eq '1' ]
 +
then
 +
exit 1
 +
fi
 +
kill $wget_pid
 +
done
 +
 
 +
==Бэкапы с уделением бэкапов за последние 30 дней==
 +
 
 +
#!/bin/bash
 +
#backuper.sh
 +
tar -czpf $(date +%Y-%m-%d)-backup.tar.gz $1
 +
echo "Backup Finished"
 +
period=2592000
 +
for i in $(ls *-backup.tar.gz)
 +
do
 +
time=${i%-backup.tar.gz}
 +
file_utime=$(date --date="$time" +%s)
 +
cur_utime=$(date +%s)
 +
if [ $(($cur_utime - $file_utime)) -gt $period ]
 +
then
 +
rm $i
 +
echo "File $i deleted"
 +
fi
 +
done

Версия 10:54, 28 апреля 2012

Работа с файлами содержащими пробелы

#!/bin/bash
OLD_IFS=$IFS
IFS=$(echo "")
for i in $(ls *.odt)
do
echo "$i"
done
IFS=$OLD_IFS

(11:31:41) Юрий Азовцев: переопределяем переменную окружения IFS (она содержит символ - разделения слов в строке), меняем его на символ \n - перевода на новую строку - и все хокей

Загрузка файла с хоста уменьшающего скорость

#!/bin/bash
#antishaper.sh
for i in $(seq 1 100) 
do 
	wget -c $1 &  
	wget_pid=$! 
	sleep 20s #ожидаем 20 секунд
	ps ux | grep $wget_pid | grep wget
	if [ $? -eq '1' ]
		then
		exit 1
	fi
	kill $wget_pid
done

Бэкапы с уделением бэкапов за последние 30 дней

#!/bin/bash
#backuper.sh
tar -czpf $(date +%Y-%m-%d)-backup.tar.gz $1
echo "Backup Finished"
period=2592000
for i in $(ls *-backup.tar.gz)
do
	time=${i%-backup.tar.gz}
	file_utime=$(date --date="$time" +%s)
	cur_utime=$(date +%s)
	if [ $(($cur_utime - $file_utime)) -gt $period ]
	then 
		rm $i
		echo "File $i deleted"
	fi
done