Posts Tagged bash

Чакалене на IP/host за наличие на пинг

Съвсем скоро (да кажем, преди 10 минути) ми се наложи да чакам да се появи пинг към дадено IP. За целта си написах shell-скриптчето, показано по-долу, което да ми “каже” нещо, в момента, в който се появи ping към съответното IP. Някой може да го намери за полезно:

dimitardimitrov@Midori:~$ cat monitor-host.sh
#!/bin/bash

if [ "$#" -lt 1 ]
then
	echo "Usage: $0 host.to.monitor"
	exit 1
fi 

host="$1"

while true
do
	ping -c 1 $host
	if [ "$?" -eq "0" ]
	then
		say The host is now online! I repeat: "The host is now online!".
		exit
	fi
	sleep 1
done

За да работи, е необходимо да имате команда say, която да прави каквото се очаква :) Може да бъде заменена и с нещо друго, разбира се. Чувствайте се свободни да ползвате това парче “код” както искате.

, , , ,

No Comments

mv, както и rm и cp

Никога не ползвайте mv * ../* на UNIX/Linux система, ако не искате да преместите всички файлове от текущия каталог, както и тези от родителския каталог, в директория от родителския каталог! Shell-ът, който използвате (/bin/sh, /bin/bash, …) ще замести * с всички файлове и каталози от текущия каталог, а ../* с всички файлове и каталози от родителския каталог, като при това положение mv ще премести целия този списък в последния си аргумент, който трябва да бъде съществуващ каталог (вероятността това да е изпълнено не е малка.)

За повече информация: man mv и man sh

Послеслов: Забравих да спомена, винаги, ама ВИНАГИ се пазете от сянката си, че няма да усетите как сами ще си навредите тъй, както никой друг не би могъл да ви навреди – слагайте синоними от този род в стартовия си, профилиращ shell-а, скрипт (~/.bash_profile за bash, ~/.cshrc за csh и т.н.):

alias rm    rm -i
alias cp    cp -i
alias mv    mv -i

,

No Comments