передайте rrd по каналу к новому каталогу

Я - 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/ ?

1
задан 27 December 2014 в 15:37
1 ответ

Кажется, вы кое-что упустили здесь:

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
1
ответ дан 4 December 2019 в 00:19

Теги

Похожие вопросы