Случайно в нете нашел скрипт который мне нужно написать на питоне...
Но к сожалению он на баше... в баше к сожалению не очень хорошо разбираюсь... как в общем и в питоне...
Помогите переписать скриптна питон пожалуйста.
Или хотя бы расскажите как он работает этот баш скрипт... чтобы я смог найти аналогичные функции в питоне.
Спасибо за любую помощь!
Скрипт номер раз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 ['$CCNTR'] ---------------------';
/sbin/losetup $LOOPD $CCNTR;
/sbin/cryptsetup create $LABEL $LOOPD;
mkdir $MNTPT;
mount -t ext2 /dev/mapper/$LABEL $MNTPT;
MLINE=`mount | grep $MNTPT`;
if [ -n "$MLINE" ]; then
echo "Label :: [$LABEL]; $CCNTR --> $MNTPT; [on $LOOPD]";
echo '----- Mount CryptoContainer Complete ! ---------';
else echo '----- ERROR - Bad password -----------------';
stop;
fi
echo ' ';
}
stop() {
echo ' ';
echo '----- Unmount CryptoContainer ['$CCNTR'] --------------------';
sync;
umount $MNTPT;
/sbin/cryptsetup remove $LABEL;
/sbin/losetup -d $LOOPD;
DLINE=`ls -A $MNTPT`;
if [ -n "$DLINE" ];
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 [ -n "$MLINE" ]; then
stop;
else
stop;
clear;
start;
fi
esac
exit 0;
Пользователь решил продолжить мысль 20 Февраля 2010, 10:37:03:
то что сам нахожу буду по тихоньку тоже писать...
Эта строка заменяет
touch
изпервого скрипта
import os
if not os.path.exists('container.dmc'):
open('container.dmc', 'w').close()
Пользователь решил продолжить мысль 20 Февраля 2010, 12:44:13:
Вот такая строка на питоне:
os.system("shred -n1 -s50M container.dmc")
Заменит вот такую на баше:
shred -n1 -s50M container.dmc
Сразу оговорюсь я хотел бы использовать функции питона... а не работать через os.system...
Но пока, за неимением лучшего, так.
Пользователь решил продолжить мысль 20 Февраля 2010, 18:47:52:
open('container.dmc','wb').write( ''.join([chr(randrange(0,256)) for x in xrange(50000000)]) )
Вот эта строчка забивает контейнер случайной последовательностью, файл получается размером 50 мб