This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
команда_cpio [2011/02/24 10:54] val created |
команда_cpio [2016/04/07 09:42] (current) val [Команда cpio] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Команда cpio ====== | ====== Команда cpio ====== | ||
- | [[http://www.gnu.org/software/cpio/manual/cpio.html]] | + | * [[https://ru.wikipedia.org/wiki/Cpio|Copy Input/Output]] |
===== Создание архива ===== | ===== Создание архива ===== | ||
<code> | <code> | ||
+ | # cd /; find etc/ | cpio -o | bzip2 -c > /mnt/etc.cpio.bz2 | ||
+ | |||
# cd /; find etc/ -name '*,v' | sed -e 's/RCS\///' -e 's/,v//' | cpio -o | bzip2 -c > /mnt/etc.cpio.bz2 | # cd /; find etc/ -name '*,v' | sed -e 's/RCS\///' -e 's/,v//' | cpio -o | bzip2 -c > /mnt/etc.cpio.bz2 | ||
+ | |||
+ | # cd /; find etc/ -ctime -1 | cpio -o | bzip2 -c | ssh archiveserver "cat > etc.cpio.bz2" | ||
</code> | </code> | ||
- | ==== Просмотр содержимого архива ==== | + | ===== Просмотр содержимого архива ===== |
<code> | <code> | ||
# bzcat /mnt/etc.cpio.bz2 | cpio -t | # bzcat /mnt/etc.cpio.bz2 | cpio -t | ||
Line 25: | Line 29: | ||
</code> | </code> | ||
+ | ===== Варианты использования ===== | ||
+ | |||
+ | ==== Сценарий: бэкап фотографий из Apple iPhoto ==== | ||
+ | <code> | ||
+ | [~ ] $ cat Pictures/backup/backup.sh | ||
+ | #!/bin/sh | ||
+ | |||
+ | # Archive size | ||
+ | # export as=734003200 #CD | ||
+ | # export as=700000000 #CD | ||
+ | # export as=4831838208 #DVD | ||
+ | export as=8500000000 #DVDRDL | ||
+ | |||
+ | # Backup list file name | ||
+ | export bf=backup/backup`date "+%Y-%m-%d_%H-%M-%S"`_${as}.txt | ||
+ | |||
+ | export IFS="" | ||
+ | |||
+ | cd ~/Pictures | ||
+ | [ -e backup/full.txt ] && rm backup/full.txt | ||
+ | mkfifo backup/full.txt | ||
+ | |||
+ | find iPhoto\ Library -type f -exec ls -l {} \; > backup/full.txt & | ||
+ | |||
+ | cat backup/backup*.txt | fgrep -v -f - backup/full.txt | | ||
+ | ( | ||
+ | s=0 | ||
+ | while read f | ||
+ | do | ||
+ | echo $f >> $bf | ||
+ | s=$(($s+`echo "$f" | awk '{print $5}'`)) | ||
+ | test $s -gt $as && break | ||
+ | done | ||
+ | test $s -gt $as && { | ||
+ | echo "Success create list for archive" | ||
+ | echo "File name: $bf" | ||
+ | echo "Archive size: $s" | ||
+ | sed 's/.*\(iPhoto Library.*\)/\1/' ${bf} | cpio -o > ${bf}.cpio | ||
+ | } || { | ||
+ | echo "No enought files for archive" | ||
+ | echo "Need $as exists $s" | ||
+ | rm $bf | ||
+ | } | ||
+ | ) | ||
+ | [ -e backup/full.txt ] && rm backup/full.txt | ||
+ | </code> |