我正在尝试查找大于1 GB的文件并压缩内容,并在压缩文件后,我需要删除tar文件并使现有文件无效。但是在这里gzipping文件时,它并没有扯到相同的路径;它将进入用户的主目录。这是在Solaris服务器上。
我是从远程服务器运行的。
ssh -o StrictHostKeychecking=no -qt 192.168.1.1 "$(<.fs1.sh)"
这是.fs1.sh
包含的内容:
threshold="50"
date=`date +"%m-%d-%y"`
for fs in $(df -k / /var /tmp| awk '{print $6}' | sed '1 d'); do
chk=$(df -k ${fs} | sed '1 d' | awk '{print $5}' | awk -F\% '{print $1}')
if [ ${chk} -gt ${threshold} ]; then
/usr/local/bin/sudo rm -f /tmp/files.log
/usr/local/bin/sudo rm -rf /var/core
/usr/local/bin/sudo rm -rf /var/audit
files=`/usr/local/bin/sudo /usr/bin/find /var/adm -xdev -type f -size +1000000000c -exec ls -lht {} \; | awk '{ print $9}'`
files1=`/usr/local/bin/sudo /usr/bin/find /var/adm/log -xdev -type f -size +1000000000c -exec ls -lht {} \; | awk '{ print $9}'`
files2=`/usr/local/bin/sudo /usr/bin/find /var/log -xdev -type f -size +1000000000c -exec ls -lht {} \; | awk '{ print $9}'`
echo "$files" >>/tmp/files.log
echo "$files1" >>/tmp/files.log
echo "$files2" >>/tmp/files.log
for i in `cat /tmp/files.log`
do
echo $i
/usr/local/bin/sudo tar -cf $i_$date.tar $i
/usr/local/bin/sudo gzip $i_$date.tar
/usr/local/bin/sudo rm $i_$date.tar
/usr/local/bin/sudo cp /dev/null $i
done
fi
if [ ${chk} -gt ${threshold} ]; then
echo "$(hostname): Fileystem Warning on ${fs} is used: ${chk}%."
sudo /usr/bin/find ${fs} -xdev -type f -size +100000000c -exec ls -lht {} \;
echo " -----------------------------------------------------------------------------------------------------------------------------------------------------"
fi
done
答案 0 :(得分:0)
您可以使用gzip
开关将-c
的输出重定向到stdout并指定输出文件。
gzip -c $i_$date.tar > /path/to/original/dir/new.gz