Страница 1 из 1

Скрипт удваивает значения

Добавлено: 2013-06-01 8:34:43
densan
Здравствуйте.
Никак не могу победить следующую ошибку. Есть скрипт:

Код: Выделить всё

#!/bin/sh

log="/var/log/rsync/rsync-all.log"
config="/usr/local/etc/rsyncd/servers"
zfs_backup="zfsstripe/backup"
rootdir="/data/stripe/backup"
script_name="/usr/local/etc/rsyncd/sync.sh"

echo="/bin/echo"
date="/bin/date"
ping="/sbin/ping"
rsync="/usr/local/bin/rsync"
mkdir="/bin/mkdir"
touch="/usr/bin/touch"
rm="/bin/rm"
awk="/usr/bin/awk"
df="/bin/df"
zfs="/sbin/zfs"
head="/usr/bin/head"

#удаляем старый и создаем новый файл лога
$rm $log
$touch $log

# Получаем объем свободного места в разделе куда льется бэкап
free="`$df | grep $zfs_backup | $awk '{print $4}'`"
$echo "Free space partition $zfs_backup=`expr $free / 1048576` Gb"  >> $log
# Получаем объем каталога с бэкапом
backup_size="`du -s $rootdir | $awk '{print $1}'`"
$echo "Backup space=`expr $backup_size / 1048576` Gb"  >> $log
...
Если скрипт стартует по крону, то данные в логе увеличены в 2 раза.

Код: Выделить всё

2013-06-01_08-00-01   Start reports
Free space partition zfsstripe/backup=3315 Gb
Backup space=418 Gb
Если стартую этот скрипт вручную - данные правильные.

Код: Выделить всё

Free space partition zfsstripe/backup=1656 Gb
Backup space=207 Gb

Re: Скрипт удваивает значения

Добавлено: 2013-06-01 9:31:59
rayder
и раз (man df)

Код: Выделить всё

     The df utility displays statistics about the amount of free disk space on
     the specified file system or on the file system of which file is a part.
     Values are displayed in 512-byte per block counts.  If neither a file or
     a file system operand is specified, statistics for all mounted file sys-
     tems are displayed (subject to the -t option below).
и два(man df)

Код: Выделить всё

     -k      Use 1024-byte (1-Kbyte) blocks rather than the default.  Note
             that this overrides the BLOCKSIZE specification from the environ-
             ment.
ну и для проверки:

Код: Выделить всё

[root[]@:[9:31]#echo $BLOCKSIZE
K

[root[]@:[9:31]#grep BLOCKSIZE /etc/login.conf | grep -v '^#'
 :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\


Re: Скрипт удваивает значения

Добавлено: 2013-06-01 10:15:31
densan
Спасибо за помощь. Буду знать.
заменил

Код: Выделить всё

df="/bin/df"
на

Код: Выделить всё

df="/bin/df -k"