У меня есть этот сценарий тестирования:
root@PC:~# cat /usr/wsh/swap_reload.sh
# Swap clear
# 03.08.2017
swapoff -a ;
swapon /tmp/swap
root@PCA73:~# ls -l /usr/wsh/swap_reload.sh
-rwxr-xr-x 1 root root 94 авг 10 16:24 /usr/wsh/swap_reload.sh
Также я добавил задачу крона (корневой крон):
* * * * * /usr/wsh/swap_reload.sh
Но когда я каждые 5 минут смотрю на free
- это не изменяется (Но должен сбросить выделенную подкачку в течение каждой минуты, не так ли?
root@PCA73:~# free -h
total used free shared buff/cache
available Mem: 31G 921M 3,9G 16G 26G
13G Swap: 99M 47M 52M
Почему это не работает?
Ваш сценарий не имеет строки хижины
#!/bin/sh
...
Без той строки скрипт может только быть запущен от оболочки, и та оболочка предположит, что сценарий должен быть выполнен как сценарий оболочки. В основном порядок следующие:
#!
подсчет как магическое число)Вот почему это работает при вызове сценария от оболочки даже при том, что это испытывает недостаток в строке хижины.
Если Вы запускаете скрипт от крона, то нет никакой родительской оболочки, которая могла предположить, как выполнить сценарий. Для предотвращения этого добавьте строку хижины как так:
#!/bin/sh
# Swap clear
# 03.08.2017
swapoff -a ;
swapon /tmp/swap
Дальнейшее чтение: