Я - chrooted и исчерпывающий дисковое пространство, таким образом, я смонтировался назад к основному диску, который имеет много пространства, но, может казаться, не перенаправляет произведенные данные к моему пустому диску
[root@localhost rra]# ls /mnt/maindrv/
cacti-0.8.8b cacti-0.8.8b.tar.gz cacti2.tar cactidb
[root@localhost rra]# for i in `ls *.rrd`; do rrdtool dump $i > '/mnt/maindrv/'.$i.'xml'; done
[root@localhost rra]# ls /mnt/maindrv/
cacti-0.8.8b cacti-0.8.8b.tar.gz cacti2.tar cactidb
[root@localhost rra]# df -h /mnt/maindrv/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-home
97G 1.5G 96G 2% /mnt/maindrv
Как я правильно произвожу свой дамп к /mnt/maindrv/
?
Кажется, вы кое-что упустили здесь:
for i in `ls *.rrd`; do rrdtool dump $i > '/mnt/maindrv/'.$i.'xml'; done
В некоторых языках .
используется для объединения переменных, но в Bash это буквальная точка.
Так, например, если у вас есть файл hello.rrd
, то команда поместит дамп в:
/mnt/maindrv/.hello.rrd.xml
Поскольку файл начинается с точки, ls / mnt / maindrv /
не будет перечислять его, даже если он там есть.
Другое дело, вам не следует перебирать ls * .rrd
, а просто *. rrd
.
Это не связано с вашим вопросом, это плохая практика.
Это должно делать то, что вам нужно, чище и лучше:
for i in *.rrd; do rrdtool dump "$i" > "/mnt/maindrv/$i.xml"; done