나는 달리려고 노력하고 있습니다 cryptsetup benchmark --cipher
./proc/crypto
/proc/crypto
나는 다음을 수행하여 목록을 얻었습니다.
cd ./Documents/; cat /proc/crypto | grep "name" | cut -c 16- | tee ciphers.txt
이제 각 비밀번호를 차례로 전달하는 방법을 찾으려고 노력하고 있습니다 cryptsetup
. 첫 번째 시도는 간단했지만 cat ciphers.txt | cryptsetup benchmark --cipher
이제 생성한 목록을 .CSV 파일로 변환하고 루프를 통해 전달해야 할 수도 있다고 생각합니다. 그것 for
.
ciphers.txt
너무 많은 노력을 들이지 않고 내가 만든 목록을 사용하여 에 전달할 수 있는 방법이 있습니까 cryptsetup
?
답변1
귀하의 문제는 dm_crypt와 관련이 없습니다. 이것은 간단한 쉘 프로그래밍 질문입니다.
먼저 커밋합니다. 고양이 학대. 대신에 cat /proc/crypto | grep "name"
그냥 쓰세요 grep name /proc/crypto
(따옴표 필요 없음).
grep과 cut을 결합하여 단일 명령으로 만들 수도 있습니다 sed
. 읽기가 반드시 쉽지는 않지만 sed -n '/^name/s/.*: //p' /proc/crypto
두 개가 아닌 하나의 명령이 필요합니다. 인쇄 라인은 기본적으로 -n
차단됩니다 . sed
프로그램은 "name"으로 시작하는 줄을 찾아 콜론 뒤의 공백이 나올 때까지 줄의 첫 번째 부분을 삭제합니다. p
나중에 꼭 인쇄해서 가세요.
이제 귀하의 질문에 답변해 드리겠습니다.. 해당 --cipher
옵션에는 비밀번호가 필요하다는 것을 알고 있습니다 . 이는 cryptsetup benchmark
각 비밀번호에 대해 한 번씩, 여러 번 실행해야 함을 의미합니다 . 이를 위해서는 다음과 같은 루프가 필요합니다.
for cipher in $(<cipher.txt)
do cryptsetup benchmark --cipher "$cipher"
done
일부 비밀번호 이름에는 특수 문자(예: 괄호)가 포함되어 있으므로 따옴표가 필요합니다.
파일이 필요하지 않은 경우 cipher.txt
이 모든 작업을 한 번에 수행할 수 있습니다.
for cipher in $(grep name /proc/crypto | cut -c 16-)
do cryptsetup benchmark --cipher "$cipher"
done