Случайно в нете нашел скрипт который мне нужно написать на питоне…
Но к сожалению он на баше… в баше к сожалению не очень хорошо разбираюсь… как в общем и в питоне…
Помогите переписать скриптна питон пожалуйста.
Или хотя бы расскажите как он работает этот баш скрипт… чтобы я смог найти аналогичные функции в питоне.
Спасибо за любую помощь!
Скрипт номер раз
touch container.dmc
shred -n1 -s50M container.dmc
losetup /dev/loop0 ./container.dmc
cryptsetup -y create X /dev/loop0
mkfs /dev/mapper/X
Скрипт номер два
#!/bin/bash
LABEL=X;
LOOPD=/dev/loop0;
MNTPT=/media/Disk_$LABEL;
CCNTR=/media/FAFE-47E0/container.dmc;
start() {
echo ‘ ’;
echo '—– Mount CryptoContainer ———————';
/sbin/losetup $LOOPD $CCNTR;
/sbin/cryptsetup create $LABEL $LOOPD;
mkdir $MNTPT;
mount -t ext2 /dev/mapper/$LABEL $MNTPT;
MLINE=`mount | grep $MNTPT`;
if ; then
echo "Label :: ; $CCNTR –> $MNTPT; ";
echo ‘—– Mount CryptoContainer Complete ! ———’;
else echo ‘—– ERROR - Bad password —————–’;
stop;
fi
echo ‘ ’;
}
stop() {
echo ‘ ’;
echo '—– Unmount CryptoContainer ——————–';
sync;
umount $MNTPT;
/sbin/cryptsetup remove $LABEL;
/sbin/losetup -d $LOOPD;
DLINE=`ls -A $MNTPT`;
if ;
then echo ‘—– CryptoContainer cannot be unmouted !!! ——’;
else
rm -rf –one-file-system $MNTPT;
echo ‘—– Unmount CryptoContainer Complete ! ———’;
fi
echo ‘ ’;
}
case “$1” in
start)
start;;
stop)
stop;;
*)
MLINE=`mount | grep $MNTPT`;
if ; then
stop;
else
stop;
clear;
start;
fi
esac
exit 0;
то что сам нахожу буду по тихоньку тоже писать…
Эта строка заменяет touch из первого скрипта
import os
if not os.path.exists('container.dmc'):
open('container.dmc', ‘w’).close()
Вот такая строка на питоне:
os.system(“shred -n1 -s50M container.dmc”)
Заменит вот такую на баше:
shred -n1 -s50M container.dmc
Сразу оговорюсь я хотел бы использовать функции питона… а не работать через os.system…
Но пока, за неимением лучшего, так.