Ubuntu Türkiye

Yazılım => Programlama => Kabuk (sh,bash,*csh,ksh,zsh) => Konuyu başlatan: mimiksiz - 26 Eylül 2018 - 23:28:25

Başlık: Taşınabilir Bellek Biçimlendirme Betiği
Gönderen: mimiksiz - 26 Eylül 2018 - 23:28:25
Kalıp yazdırmak için biçimlendirme veya 14 farklı dosya sistemini destekleyen biçimlendirme seçenekleri mevcut. Parted yazılımının kurulu olması gerekiyor.

#!/bin/bash
if ! which parted &>/dev/null; then
        echo "Parted yazılımının kurulu olduğundan emin misiniz?"
        exit 1
fi
clear
bellekler=$(lsblk -lo NAME,TYPE,HOTPLUG|grep disk|grep 1$|awk '{print $1}')
bellek_adet=$(echo $bellekler|wc -w)
if [ $bellek_adet = 0 ]; then
echo "Usb bellek takılı değil."
exit 1
fi
echo "Bulunan çıkarılabilir bellekler:"
while true; do
for (( a=1; a<=$bellek_adet; a++ )); do
echo -en "$a\t/dev/"
echo $bellekler|awk '{print '"\$${a}"'}'
done
echo "Biçimlendirmek istediğiniz usb belleği seçiniz."
read girdi
if [ "$(echo -n $girdi|tr -d '[0-9]')" = "" ] && [ ! $girdi -lt 1 ] && [ ! $bellek_adet -lt $girdi ]; then
silinecek_bellek=$(echo -n /dev/;echo -n $bellekler|awk '{print '"\$${girdi}"'}')
break
else
clear
echo "Hatalı seçim yaptınız. Biçimlendirilecek belleğin numarasını giriniz."
fi
done
clear
while true; do
echo -e "Belleğinizi kalıp yazdırmak için biçimlendireceksiniz:\t1\nDosya formatı seçerek biçimlendirecekseniz:\t\t2"
read girdi
if [ $girdi = 1 ]; then
sil=tam
break
elif [ $girdi = 2 ]; then
break
else
clear
echo "Hatalı giriş yaptınız."
fi
done
clear
if [ "$sil" = "tam" ]; then
while true; do
echo -e "$silinecek_bellek belleğiniz biçimlendirilecek. Onaylıyor musunuz?\ne/h"
read onay
if [ $onay = h ] || [ $onay = H ]; then
echo "İşleminiz iptal edildi."
exit 1
elif [ $onay = e ] || [ $onay = E ]; then
break
else
clear
echo "Hatalı giriş yaptınız."
fi
done
bellekler=$(lsblk -lo type,name $silinecek_bellek|grep part|awk '{print $2}')
bellek_adet=$(echo $bellekler|wc -w)
bellek_adet=$(( $bellek_adet+1 ))
for (( a=1; a<=$bellek_adet; a++ )); do
for (( b=1; b<=$bellek_adet; b++ )); do
c=$(lsblk -no MOUNTPOINT $silinecek_bellek|sed -n $b'p')
sudo umount $c &>/dev/null
done
done
if [ "$c" != "" ]; then
echo "HATA: $c yoluna bağlı bölüm ayrılamadı."
exit 1
fi
bellek2=$(echo $silinecek_bellek|awk -F /dev/ '{print $2}')
disk_konum=/sys/block/$bellek2
toplam_boyut=$(cat $disk_konum/size)
boyut=$(cat $disk_konum/queue/hw_sector_size)
adet=$((toplam_boyut/boyut))
        sudo dd if=/dev/zero of=$silinecek_bellek bs=$boyut count=$adet &>/dev/null
        sudo parted -s $silinecek_bellek mklabel msdos &>/dev/null
clear
echo "$silinecek_bellek belleğiniz biçimlendirildi."
exit
fi
bellek_adet=$(lsblk -lo NAME,TYPE $silinecek_bellek|grep part|wc -l)
while true; do
for (( a=1; a<=$bellek_adet; a++ )); do
echo -en "$a\t/dev/"
lsblk -lo NAME,TYPE $silinecek_bellek|grep part|awk '{print $1}'|sed -n $a'p'
done
echo "Biçimlendirmek istediğiniz bölümü seçiniz."
read girdi
if [ ! "$girdi" -lt 1 ] && [ ! "$bellek_adet" -lt "$girdi" ]; then
break
else
clear
echo "Hatalı giriş yaptınız."
fi
done
clear
silinecek_bellek=$(echo -n /dev/;lsblk -no KNAME,TYPE $silinecek_bellek|grep part|sed -n $girdi'p'|awk '{print $1}')
kontrol(){
clear
if ! which $@ &>/dev/null; then
echo "$@ yazılımının kurulu olduğundan eminmisiniz."
exit 1
fi
while true; do
echo -e "$silinecek_bellek belleğinize $@ komutu uygulanacak. Onaylıyor musunuz?\ne/h"
read girdi
if [ "$girdi" = e ] || [ "$girdi" = E ]; then
bellek=$(lsblk -lno MOUNTPOINT $silinecek_bellek)
sudo umount $bellek &>/dev/null
bellek=$(lsblk -lno MOUNTPOINT $silinecek_bellek)
if [ "$bellek" != "" ]; then
echo "$bellek yoluna bağlı $silinecek_bellek belleğiniz ayrılamadı."
exit 1
fi
sudo $@ $silinecek_bellek
echo "$silinecek_bellek belleğiniz biçimlendirildi."
break
elif [ "$girdi" = h ] || [ "$girdi" = H ]; then
echo "İşleminiz iptal edildi."
exit 1
else
clear
echo "Hatalı giriş yaptınız."
fi
done
}
while true; do
echo "$silinecek_bellek belleğini hangi formatta biçimlendirmek istiyorsunuz?"
echo -e "1:\tFAT16\t\t8:\treiserfs\n2:\tFAT32\t\t9:\txfs\n3:\tNTFS\t\t10:\tjfs\n4:\text2\t\t11:\tbtrfs\n5:\text3\t\t12:\texfat\n6:\text4\t\t13:\tf2fs\n7:\tnilfs\t\t14:\tLinux Swap"
read format
case $format in
1)kontrol mkfs.fat -F16
break
;;
2)kontrol mkfs.fat -F32
break
;;
3)kontrol mkfs.ntfs -f
break
;;
4)kontrol mkfs.ext2
break
;;
5)kontrol mkfs.ext3
break
;;
6)kontrol mkfs.ext4
break
;;
7)kontrol mkfs.nilfs2
break
;;
8)kontrol mkfs.reiserfs
break
;;
9)kontrol mkfs.xfs -f
break
;;
10)kontrol mkfs.jfs -f
break
;;
11)kontrol mkfs.btrfs -f
break
;;
12)kontrol mkfs.exfat
break
;;
13)kontrol mkfs.f2fs -f
break
;;
14)kontrol mkswap
break
;;
*)clear; echo "Hatalı giriş yaptınız."
;;
esac
done
Başlık: Ynt: Taşınabilir Bellek Biçimlendirme Betiği
Gönderen: aderinkaya - 26 Eylül 2018 - 23:30:30
Hocam ayıptır sorması :) biçimlendirme betiği ne manaya geliyor? Verdiğiniz kodları ne yapmak gerekiyor ne anlatıyor bize? Yanlış anlamayın cahilliğimden soruyorum yani.
Başlık: Ynt: Taşınabilir Bellek Biçimlendirme Betiği
Gönderen: mimiksiz - 26 Eylül 2018 - 23:55:47
Estağfirullah. Flash disk (taşınabilir bellek) de ki tüm dosyaları silmek için, veya dosya sistemini değiştirmek için(içinde ki dosyalar da silinir) fat32 den ntfs ye çevirmek gibi, veya format dosyası olan iso kalıbını yazmadan önce hazırlamak için windows ortamında bulaşan virüslerden kurtulmak için, ram yetmediği noktada takas alanı olarak biçimlendirip /etc/fstab dosyasına kayıt ederek ramsizlikten kurtulmak için vs. işlere yarar.

Aslında çok basit olan bu işlem için niçin yazdınız derseniz kullanıcı hangi komutla biçimlendireceğini bilemiyebiliyor veya gparted ortamında biçimlendirse dahi hata alıyor daha önce kalıp dosyası yazdırdığı için, bu betikte kalıp dosyası yazdırdıktan sonra sorunsuz biçimlendirme yapılabilir.
Başlık: Ynt: Taşınabilir Bellek Biçimlendirme Betiği
Gönderen: aderinkaya - 27 Eylül 2018 - 00:04:08
Anladım hocam peki bu paketi çalıştırmak için ne yapmak gerekir? Metin belgesinde .deb olarak mı .py olarak mı kaydetip çalıştırmali yoksa terminalden mi uygulamalı?
Başlık: Ynt: Taşınabilir Bellek Biçimlendirme Betiği
Gönderen: mimiksiz - 27 Eylül 2018 - 00:07:43
Metin belgesine uzantısı .sh olarak kaydedip dosyanın bulunduğu dizinde terminalden çalıştırma izni chmod +x dosyaadı.sh verdikten sonra yine terminalden dosyanın bulunduğu dizinde ./dosyaadı.sh komutu ile çalıştıralibilirsiniz.
Ayrıca parted yazılımını kurmanız gerekiyor. ubuntu için sudo apt install parted
Başlık: Ynt: Taşınabilir Bellek Biçimlendirme Betiği
Gönderen: aderinkaya - 27 Eylül 2018 - 01:11:34
Çok teşekkür ederim birşey daha öğrenmiş oldum sayenizde. Emeğinize sağlık.
Başlık: Ynt: Taşınabilir Bellek Biçimlendirme Betiği
Gönderen: mimiksiz - 27 Eylül 2018 - 01:22:37
Rica ederim. Güle güle kullanın :)