So. Zář 14th, 2024
Na obrázku je bash skript, který se nachází v článku

Máte rádi retro a potřebujete např. stará score CD/DVD nebo Level CD/DVD zazálohovat do počítače, protože nevíte, jak dlouho vám taková CD/DVD ještě vydrží stát na poličce, než se rozpadnou a nic z nich už nepřečtete?

Vzal jsem starší bigtower, starší jednojádro, našel jsem 3x SATA mechaniky, další 3x IDE mechaniky. Pozapojoval jsem, nainstaloval jsem na SATA SSD disk LXLE (který doporučuji, protože vám bude vcelku obstojně fungovat plnohodnotný Ubuntu Linux na starém šrotu a nebude to žrát víc než 180 MB RAM po náběhu GUI). V zásadě vám ale stačí jakákoliv distribuce Linuxu.

No a pak jsem zkusil navštívit chatGPT, popsal jsem požadavky a vyplivlo mi to naprosto nefunkční, hezky vypadající skript, který nic nedělal, nevypsal ani žádný error, nefungoval.

Takže jsem ChatGPT místo dlouhého zkoumání a debugování zahodil a napsal si sám vlastní prasobash script, který vám tu sem nechám.

Jak zjistím, která mechanika je která?

Mechaniky v linuxu se identifikují jako zařízení /dev/sr0 až /dev/sr255

Hádám, že 256 zařízení asi těžko připojíte (ale pokud se o to pokusíte, tak mi někde pošlete fotky dolů do komentářů.

Každopádně v mém případě jdou mechaniky od nejvrchnější po nejnižší (polepil jsem si je lepítkama s čísly) 0, 1, 4, 5, 3, 2,.

Jak zjistím pořadí vlastních CD/DVD mechanik?

Zadejte řádek po řádku následující příkazy a sledujte, která mechanika se otevře:

eject /dev/sr0
eject /dev/sr1
eject /dev/sr2
eject /dev/sr3
eject /dev/sr4
eject /dev/sr5
eject /dev/sr6 ...až /dev/sr255

Podle pořadí si pak udělejte poznámku, která mechanika je která, ať se nespletete.

Bash script

#!/bin/bash
###SETTINGS
path="/mnt/"  #Upravte si sem cestu, kam chcete nahrávat/zálohovat image z CDček/DVDček
order=(0 1 4 5 3 2) #Poradi jednotlivych mechanik jak jdo po sobe fyzicky od nejvyse polozene po nejnize polozenou ve skrini PC - upravte si, jak to máte vy v PC
###END SETTINGS
names=();
echo "SKRIPT NA MOUNTOVANI 6 mechanik od shoru dolu $order"
for poradi in "${order[@]}"; do
        echo "zadej $poradi . název .iso a potvrď enterem: (jen název bez .iso): "
        read name
        names[$poradi]="$name"
done

echo "Odmountovavam vsechny mechaniky pro pripad, ze byly mountnuty predtim do jineho adresare:"
for poradi in "${order[@]}"; do
umount /dev/sr$poradi
done

echo "Mountuji vsechny mechaniky do adresaru /sr0 /sr1 atd..."
for poradi in "${order[@]}"; do
echo "mountuji /dev/sr$poradi"
mount /dev/sr$poradi /sr$poradi
done

for poradi in ${order[@]}; do
        output_path=$path${names[$poradi]}\.iso #kam do ktereho souboru ulozit zalohu napr. /mnt/soubor.iso
        drivenumber=$poradi  #poradi mechaniky
        echo "Delam .iso z /dev/sr$drivenumber do $output_path"
        dd if="/dev/sr$drivenumber" of="$output_path" bs=4M status=progress 2>>log3.txt && eject /dev/sr$drivenumber &
        echo $output_path >> log3.txt
        echo $output_path
done

Závěr

Výsledek bude, že vám těchto 6 mechanik nasype .iso image v /mnt/název.iso

Avatar

By mirra

Hardwaru a počítačům se věnuji již od roku 2003. Za tu dobu jsem poskládal stovky počítačů, opravil tisíce počítačů a vyřešil nespočetně problémů, vad a chyb, se kterými se setkávali uživatelé. Od roku 2005 se zabývám servery, zejména těmi herními, v roce 2007 jsem se začal věnovat Valve Source SDK level designu, který šel od roku 2009 k ledu kvůli studiu Informatiky na univerzitě. Podílel jsem se chvíli i na provozu síťové laboratoře MENDELU, dnes spravuji cca 30 serverů/diskových polí na univerzitě, řeším IT v malých a středních firmách tak, aby firmy ušetřily nemalé částky při zlepšení kvality a soustředím se na snižování nákladů na IT od licencí až po hardware, software, provádím konsolidace a audity platnosti licencí, které firmám šetří rovněž nemalé peníze. Z velkých firem spravuji s dalšími kolegy 8000 serverů po celé Evropě a tato práce mě nesmírně baví, protože se vše musí automatizovat a nabízí mi to možnost trénovat další evropské jazyky od Angličtiny, přes Němčinu až po Italštinu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *