Вы можете использовать «цикл цикла»:
for FILE in 'file-list'
do
echo "$FILE"
mv "$FILE" /your/destination/
done
Объяснение:
'file-list' следует заменить на метод, чтобы получить список файлов, которые вы хотите использовать. Например, $(cat files.txt), если у вас уже есть список в файле, pattern*, если файлы в вашем каталоге начинаются с того же шаблона или $(find -iname "*pattern*"), если вы хотите использовать find для получения списка. Выход будет сохранен в переменной FILE один элемент за другим. Команды между do и done выполняются для каждого элемента. Вы можете использовать echo "$FILE", чтобы проверить, соответствует ли ваша команда правильным файлам перед добавлением команды mv в цикл.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.
Попробуйте инструмент prlimit из пакета util-linux. Он запускает программу с ограничениями ресурсов. Он использует системный вызов prlimit для настройки пределов, которые затем принудительно применяются только ядром.
Вы можете настроить 16 пределов, в том числе:
максимальное количество процессорного времени в секундах Максимальное количество пользовательских процессов Максимальный размер резидентного набора («используемая память») Максимальный размер процесса может блокировать объем памяти виртуальной памяти Максимальное количество открытых файлов Максимальное количество блокировок файлов Максимальное количество ожидающих сигналов Максимальные байты в очередях сообщений POSIXНенавижу быть парнем, который отвечает на свой вопрос, но сегодня утром я нашел альтернативный метод, завернутый в небольшую полезность. Это будет ограничено потреблением процессора или памяти:
https://github.com/pshved/timeout
Я сначала делаю этот снимок, но выдвигаю предложение Amey Jah для хороший ответ. Я проверю, не справится ли это с этим.
Я бы настоятельно советовал не делать этого. Как было предложено @chrisamiller, установка ulimit ограничивает RAM доступной с процессом.
Но если вы настаиваете, то следуйте этой процедуре.
Сохраните следующий сценарий как killif.sh:#!/bin/sh
if [ $# -ne 2 ];
then
echo "Invalid number of arguments"
exit 0
fi
while true;
do
SIZE=$(pmap $1|grep total|grep -o "[0-9]*")
SIZE=${SIZE%%K*}
SIZEMB=$((SIZE/1024))
echo "Process id =$1 Size = $SIZEMB MB"
if [ $SIZEMB -gt $2 ]; then
printf "SIZE has exceeded.\nKilling the process......"
kill -9 "$1"
echo "Killed the process"
exit 0
else
echo "SIZE has not yet exceeding"
fi
sleep 10
done
Теперь сделайте его исполняемым. chmod +x killif.sh
Теперь запустите этот скрипт на терминале. Замените PROCID фактическим идентификатором процесса и SIZE с размером в МБ. ./killif.sh PROCID SIZE
Например: ./killif.sh 132451 100
Если SIZE равно 100, тогда процесс будет убит, если его использование ОЗУ превысит 100 МБ. Я бы настоятельно советовал не делать этого Вы знаете, что вы пытаетесь сделать. Процесс убийства - это не очень хорошая идея. Если в этом процессе есть команда остановки или остановки, отредактируйте скрипт и замените команду kill -9 командой shutdown.