Kategoriler
Dosya sistemi

chref

Bir dizindeki dosyaların haklarının referans bir dizinde aynı addaki dosyaların hakları ile aynı olmasını sağlamak için bir betik.

#!/bin/bash
# @author Özgür Kılıçaslan
# @version 2014.02.24

for ref1 in `find $1`
do
ref2=`echo $ref1 | sed "s,$1,$2,g"`
chmod --reference=$ref1 $ref2
done
Kategoriler

dig_list

Satır satır alanadlarını içeren bir dosyayı parametre alıp 2. parametre olarak verilen alanadı sunucusundan sorgulayan ve

ALANADI                                               IP ADRESİ

şeklinde çıktı veren bir betik aşağıdaki.


#!/bin/bash
# @author Özgür Kılıçaslan
# @version 2012.06.08

while read domain
do
printf "%-64s%s\n" $domain $(dig +short @$2 $domain);
done < $1

Kategoriler
Yedekleme

backup_db2remote

Uzak sunucuya (ya da localhost) MySQL sunucusu üzerindeki veritabanının yedeğini almak için kullanılabilir betik.

#!/bin/bash
# @author Özgür Kılıçaslan
# @version 2014.01.29
CLIENT=$1
DB=$2
USER=$3
PASSWORD=$4
SERVER=$5

DATE=$(date +%Y-%m-%d_%H.%M)

SQL=${CLIENT}.${DB}.${DATE}.sql
SHA1=${CLIENT}.${DB}.${DATE}.sql.sha1
BZ2=${CLIENT}.${DB}.${DATE}.sql.tar.bz2

TMP=/tmp/
cd ${TMP}

mysqldump -u ${USER} -p${PASSWORD} ${DB} > ${SQL}
sha1sum ${SQL} > ${SHA1}
tar cjvf ${BZ2} ${SQL} ${SHA1}

scp ${BZ2} ${SERVER}

rm ${SQL}
rm ${SHA1}
rm ${BZ2}
Kategoriler
Dosya paylaşımı

del_smbuser

Samba kullanıcılarını isterseniz toplu bir şekilde silmenizi sağlayan betik. Betiğin tek ihtiyacı olan şey satır satır

kullanıcı

şeklinde düzenlenmiş bir dosya

#!/bin/bash
# @author Özgür Kılıçaslan - Can Mustafa Özdemir
# @version 2012.04.30
prog=$0
base=
user=
file=

optstring=u:l:

while getopts $optstring opt;
 do
 case $opt in
 u)
 user=$OPTARG
 ;;
 l)
 file=$OPTARG
 ;;
 *)
 exit 1
 ;;
 esac
 done
if [ -n "${user}" ]
then

smbpasswd -x ${user}

userdel ${user}

rm -R /home/${base}/${user}

rm /etc/samba/${user}.user

cat /etc/samba/smb.base > /etc/samba/smb.conf

for i in `find /etc/samba/ -iname "*.user"`
do
cat $i >> /etc/samba/smb.conf
done

service smbd stop
service smbd start

else
 if [ -f $file ]
 then
 while read user2;
 do

$prog -u $user2
 done < "$file"
 fi
fi
Kategoriler
Dosya paylaşımı

add_smbuser

Bakım gerektiren bir samba kullanıcısı ekleme betiği. Betik sadece file parametresi vermişseniz

kullanıcı parola

şeklinde düzenlenmiş olan bir dosyadan okuyarak yine kendisini kullanarak kullanıcıları oluşturuyor.

Uyarı notu:

samba sunucusunu ilk kurduğunuzda

/etc/samba/smb.conf

dosyasının adını

/etc/samba/smb.base

şeklinde değiştirin.

#!/bin/bash
# @author Özgür Kılıçaslan - Can Mustafa Özdemir
# @version 2012.04.30
prog=$0
base=
user=
password=
file=

optstring=u:p:l:

while getopts $optstring opt;
 do
 case $opt in
 u)
 user=$OPTARG
 ;;
 p)
 password=$OPTARG
 ;;
 l)
 file=$OPTARG
 ;;
 *)
 exit 1
 ;;
 esac
 done
if [ -n "${user}" ] && [ -n "${password}" ]
then

if [ ! -d /home/${base} ]
then
mkdir /home/${base}
fi

useradd --create-home --home /home/${base}/${user} --skel /etc/${base}.skel/ --password ${password} ${user}

(echo ${password}; echo ${password}) | smbpasswd -a -s ${user}

echo "
[${user}]
path = /home/${base}/${user}
comment = No comment
admin users = ${user}
read only = no
available = yes
browseable = yes
writable = yes
guest ok = no

public = no
printable = no
locking = no
strict locking = no
" > /etc/samba/${user}.user

cat /etc/samba/smb.base > /etc/samba/smb.conf

for i in `find /etc/samba/ -iname "*.user"`
do
cat $i >> /etc/samba/smb.conf
done

service smbd stop
service smbd start

else
 if [ -f $file ]
 then
 while read user2 password2;
 do
 $prog -u $user2 -p $password2
 done < "$file"
 fi
fi
Kategoriler

if_dns

Bir alanadının o an çözülüp çözülmediğini bir log dosyasına kaydeden betik

#!/bin/bash
# @author Özgür Kılıçaslan
# @version 2012.04.29
DOMAIN=$1
DNS=8.8.8.8
LOG_FILE=/var/log/if_domain.log
DATE=$(date +"%Y.%m.%e %H:%M:%S")

IP=`dig +short @$DNS $DOMAIN`

if [ -n "$IP" ];
then
 echo $DATE $DOMAIN is RESOLVED >> $LOG_FILE
else
 echo $DATE $DOMAIN is UNRESOLVED >> $LOG_FILE
fi
Kategoriler

if_interface2net

eth0, wlan0 ya da başka bir ağ arabirimi üzerinden internet bağlantısını test eden
ve bunu bir log dosyasına kaydeden betik

#!/bin/bash
# @author Özgür Kılıçaslan
# @version 2012.04.29
INTERFACE=$1
LOG_FILE=/var/log/if_interface2net.log
DATE=$(date +"%Y.%m.%e %H:%M:%S")

ping -c 1 -I $INTERFACE google.com > /dev/null 2>&1

if [ $? == 0 ]; then
  echo $DATE $INTERFACE is UP >> $LOG_FILE
else
  echo $DATE $INTERFACE is DOWN >> $LOG_FILE
fi