Por que esse script bash para descartar caches não funciona?

0

Estou tentando criar um script para limpar meus caches de RAM.

Aqui está o que eu tenho até agora:

#! /bin/bash

free -m
sync
sudo -s
echo 3 > /proc/sys/vm/drop_caches

Mas isso não funciona totalmente. Os três primeiros comandos funcionam perfeitamente no quarto comando que sai.

Por favor, explique.

    
por ScareCrow 30.06.2012 / 00:55

2 respostas

3

sudo -s cria uma sessão de shell de login. Então, depois de sair, você volta a ser um usuário comum. Em seguida, ele executa a quarta linha, mas você não é root nesse ponto, por isso falha.

Você não pode simplesmente colocar um sudo na frente da instrução echo, já que esse é um comando interno.

Então, tente isso:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
% bl0ck_qu0te%     
por Bryce 30.06.2012 / 01:23
0

Use comandos sudo depois de usar os comandos não su ou mova os comandos sudo para outro script. Você pode cronometrá-los com (exemplo para liberar memória)

echo "free -m" | at 7:00

Eu acredito

    
por The Wise 26.04.2017 / 18:24