Сценарий оболочки для постепенного увеличения количества записей

Можно использовать lvm для этого. Это было разработано для разделения физического диска от логического диска.

С lvm Вы можете:

  1. Добавьте свежий новый физический диск к пулу (названный Volume Group в терминологии LVM)

    pvcreate/dev/sdb my_vg

  2. Расширьте пространство логического тома

    lvextend...

  3. И закончите с онлайн, изменяют размер Вашей файловой системы

    e2resize/mnt/my/path

Но остерегайтесь, это не чудодейственное средство. Это намного больше тяжелее для сокращения файловой системы, даже с LVM.

2
30.11.2012, 20:28
2 ответа

Один файл/счетчик на страну.

#!/bin/bash
#Country name is specified as a comamnd line argument
# ie device_count.sh Brazil
if [[ -z "$1" ]] ; then
   echo "Please specify country name" >&2
   exit 1
fi

#Create a new file per country if one doesn't exist already
COUNTER_FILE=/var/tmp/devices.$1
if [[ -r $COUNTER_FILE ]] ; then
   COUNT=$(<$COUNTER_FILE)
else
   COUNT=0
fi

#Increment counter and save to file 
echo $(( $COUNT += 1 )) > $COUNTER_FILE

#check if we need to send email
if [[ $(( $COUNT % 10 )) -eq 0 ]] ; then
   #We have reached 10 - we need to send an email
   echo "BLAH BLAH BLAH " | mailx -s "reached 10" you@domain.com
fi
3
27.01.2020, 22:07
  • 1
    Спасибо Darkheart... Какой-eq 0 обозначает то, поскольку я ищу для сброса в противоречии с 0, после того как он посылает электронное письмо. Это поможет? –  user28104 02.12.2012, 17:19
  • 2
    '%' (иначе 'по модулю') разделит счетчик на 10 и даст римейнеру. Так, поэтому, каждый раз счетчик достигает нескольких из десять не будет никакого римейнера (т.е. 0), и электронное письмо будет послано. –  DarkHeart 04.12.2012, 10:48

Необходимо записать количества страны в файл перед выходом из сценария как из последней вещи. В следующий раз, когда Вы запускаете свой скрипт, необходимо считать эти значения из того же файла. Иначе Вы не можете сохранить значения в переменных памяти как каждый сценарий оболочки, который Вы выполняете, выполняет подоболочку с ее собственными переменными и уничтожает оболочку и содержание, когда это выходит.

x="$country" 

count=$(cat ${country}) 
#instead of starting from 0 each time, start from the content of this file
#you need to manually create each country file with value 0 in it
#before start using this struct.

for device_count in $x 
do 
count=expr $count + 1 
echo "Country_[$device_count] count $count" 
if [ count -eq 5 ]; 
then 
echo "email to be sent " 
fi 
done 


echo ${count} > ${country} 
#at this point you overwrote the file named as
#the name of country you are working here
0
27.01.2020, 22:07
  • 1
    Спасибо за reponse, но не очищаются мне.... Вы могли объяснить на сценарии..., например, у нас уже есть я dentified страна для соответствующего вниз событие теперь, когда единственный вход, поэтому если 5 вниз событие из той же страны... x =" $country" count=0 для device_count в $x проводит подсчет =expr $count + 1 повторите "Страну _[$device_count] $count количества", если [считают-eq 5]; затем повторите "электронную почту, которая будет отправлена" fi сделанные –  user28104 30.11.2012, 19:35
  • 2
    Посмотрите выше. –  MelBurslan 30.11.2012, 19:45

Теги

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