Назад | Перейти на главную страницу

перенаправьте 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/ ?

Похоже, вы что-то здесь упустили:

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