The difference between the values is as follows.
From the manual of stat(2)
struct stat {
// snip
off_t st_size; /* total size, in bytes */
// snip
blkcnt_t st_blocks; /* number of blocks allocated */
// snip
};
The st_blocks field indicates the
number of blocks allocated to the
file, 512-byte units. (This may be
smaller than st_size/512, for example,
when the file has holes.)
The size as reported by ls is st_size
, the size as reported by du is st_blocks * 512
The value reported by du is the number of bytes used by the file on the filesystem/disk, and the value reported by ls is the actual size/length of the file when you interact with it. (In addition to operating with on-disk usage, du also only counts hardlilnked files once)
Which value is the "right one" depends on context. If you're after disk-usage du is correct, if you're wondering how many bytes is in the file, ls/st_size
is correct.
In addition, you can by using various options get i.e. du (--apparent-size) to use the size reported by st_size
or you can get ls (-s) to report the number of blocks used.
Your assumption regarding your logfile beeing a sparse file sounds plausible, however, the reason why I don't know.
Best Answer
i think you cannot access more advanced iproute2 features [ for instance multiple routing tables, routing based on src address or filter ] using ipconfig+route.
for me syntax of ip is much more logical and easier to use.