Mijn vraag
Ik zou graag de grootte van alle bestanden die ik met tar op een tape zet willen berekenen. Nu pipe ik de output van tar -Mcvvf /dev/st0 /path/to/be/backed/up/* naar een file die ik dan "process" met awk.
De output van tar ziet er zo uit. Een erg lange lijst van deze lijnen:
Met awk ga ik daarover alsvolgt:
Dat deel ik dan door 1073741824 zodat ik de grootte in GB krijg: 380.14 ... ? Als ik door 1000000000 deel dan krijg ik 408.17GiB.
Ik heb al eens geprobeerd om een backup te nemen van /usr/ met tar naar een file. Daar blijkt ook dat een ls een grotere grootte rapporteert van de tar file dan ik hetzelfde doe met awk.
Dus dan is mij vraag, wat doe ik mis? Of doe ik het juist maar is er iets wat ik niet begrijp?
Relevante software en hardware die ik gebruik
tar,awk,bc op Linux
LTO-3 tapes in native (geen compressie). Die zouden dus in theorie 400GB moeten kunnen opslaan.
Wat ik al gevonden of geprobeerd heb
Ik zou graag de grootte van alle bestanden die ik met tar op een tape zet willen berekenen. Nu pipe ik de output van tar -Mcvvf /dev/st0 /path/to/be/backed/up/* naar een file die ik dan "process" met awk.
De output van tar ziet er zo uit. Een erg lange lijst van deze lijnen:
code:
1
| -rwxrwxrwx 1028/138862 25410219 2018-08-15 07:36 mnt/photo/YYYY/MM/DD/ALBUMNAME/IMG_3266.CR2 |
Met awk ga ik daarover alsvolgt:
code:
1
| awk '/code/,/\/code/ {sum+=$3;} END {printf "%.0f", sum;}' 000004l3.txt |
Dat deel ik dan door 1073741824 zodat ik de grootte in GB krijg: 380.14 ... ? Als ik door 1000000000 deel dan krijg ik 408.17GiB.
Ik heb al eens geprobeerd om een backup te nemen van /usr/ met tar naar een file. Daar blijkt ook dat een ls een grotere grootte rapporteert van de tar file dan ik hetzelfde doe met awk.
Dus dan is mij vraag, wat doe ik mis? Of doe ik het juist maar is er iets wat ik niet begrijp?
Relevante software en hardware die ik gebruik
tar,awk,bc op Linux
LTO-3 tapes in native (geen compressie). Die zouden dus in theorie 400GB moeten kunnen opslaan.
Wat ik al gevonden of geprobeerd heb
code:
1
2
3
4
5
6
7
| $ backup_size=$(awk '/code/,/\/code/ {sum+=$3;} END {printf "%.0f", sum;}' 000004l3.txt) $ echo $backup_size 408173321351 echo "scale=2; $backup_size/1073741824" | bc 380.14 echo "scale=2; $backup_size/1000000000" | bc 408.17 |