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> | ||