Как ежедневно проверять доступное пространство на жестком диске, и если оно ниже 1GO, удалить файлы

the fc команда делает то, что вы хотите

fc -l <номер> отобразит историю команд вокруг этого номера

fc <номер> откроет эту запись командной строки в vim (или независимо от того, какой у вас редактор по умолчанию, я полагаю), поэтому вы можете редактировать его, и после : wq он будет доступен вам со стрелкой вверх.

0
25.05.2018, 13:17
3 ответа

Recomiendo encarecidamente no analizar dfla salida.

Si tiene statde GNU coreutils, puede obtener la cantidad de bloques libres disponibles para no -root por

stat  -f /mountpoint -c '%a'

el tamaño del bloque por

stat -f /mountpoint -c '%S'

y la condición se puede escribir sucintamente como:

[ `stat  -f /mountpoint -c '%a'` -lt 262144 ] && do_your_stuff

(asumiendo que el tamaño del bloque es 4096 y 1 GB es 1073741824 bytes -es decir, 1073741824/4096)

Y en cuanto a la eliminación de archivos (, según la pregunta ), probablemente la forma más segura sería:

find /directory -type f -print0 | xargs -0 -r rm -f

o incluso mejor:

find /directory -type f -delete

Usar rm -f /something/*es solo buscar problemas.

1
28.01.2020, 02:43

prueba el siguiente código.

#!/bin/bash
var=$(df -h | sed -n 2p |awk '{ print $4 }')
if [ "${var}" le "15" ]
then
./bin/dss stop
rm -rf tmp/*
rm -rf caches/*
./bin/dss start
fi
0
28.01.2020, 02:43

Gracias por sus aportes.

Esta solución funcionó para mí.

var=$ (df -h | sed -n 2p | awk '{imprimir $4}')

variable = $ (echo "${var ::-1}")

si [ $vari < 15 ];

luego

./bin/dss parada

rm -rf tmp/*

rm -cachés rf/*

./bin/dss inicio;

hasta

0
28.01.2020, 02:43

Теги

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