Почему не работает этот bash-скрипт для удаления кэшей?

Односимвольные параметры должны выполняться сразу по их параметрам, а затем по любым другим параметрам. В противном случае используйте стандартные параметры стиля или объедините -C таким же образом:
tar cvCf dir asdf.tgz asdf
tar -c -v -f dir/asdf.tgz -C dir asdf
Так как программы читают - как символ параметра, вам нужно победить это, чтобы получить доступ к файлу, начинающемуся с -. Два способа сделать это:
rm -- -C
rm ./-C
0
задан 30 June 2012 в 04:26

14 ответов

sudo -s создает сеанс оболочки входа в систему. Затем, после того как вы выйдете, вы снова станете обычным пользователем. Затем он выполняет 4-ю строку, но в этот момент вы не являетесь пользователем root, поэтому происходит сбой.

Вы не можете просто вставить sudo перед оператором echo, поскольку это встроенная команда.

Поэтому попробуйте это:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

От man sudo :

-s [command]
     The -s (shell) option runs the shell specified by the SHELL 
environment variable if it is set or the shell as specified in passwd(5).
If a command is specified, it is passed to the shell for execution. 
Otherwise, an interactive shell is executed.
3
ответ дан 25 July 2018 в 18:15

sudo -s создает сеанс оболочки входа в систему. Затем, после того как вы выйдете, вы снова станете обычным пользователем. Затем он выполняет 4-ю строку, но в этот момент вы не являетесь пользователем root, поэтому происходит сбой.

Вы не можете просто вставить sudo перед оператором echo, поскольку это встроенная команда.

Поэтому попробуйте это:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

От man sudo :

-s [command]
     The -s (shell) option runs the shell specified by the SHELL 
environment variable if it is set or the shell as specified in passwd(5).
If a command is specified, it is passed to the shell for execution. 
Otherwise, an interactive shell is executed.
3
ответ дан 2 August 2018 в 00:28

sudo -s создает сеанс оболочки входа в систему. Затем, после того как вы выйдете, вы снова станете обычным пользователем. Затем он выполняет 4-ю строку, но в этот момент вы не являетесь пользователем root, поэтому происходит сбой.

Вы не можете просто вставить sudo перед оператором echo, поскольку это встроенная команда.

Поэтому попробуйте это вместо:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

От man sudo :

-s [command]
     The -s (shell) option runs the shell specified by the SHELL 
environment variable if it is set or the shell as specified in passwd(5).
If a command is specified, it is passed to the shell for execution. 
Otherwise, an interactive shell is executed.
3
ответ дан 4 August 2018 в 15:57

sudo -s создает сеанс оболочки входа в систему. Затем, после того как вы выйдете, вы снова станете обычным пользователем. Затем он выполняет 4-ю строку, но в этот момент вы не являетесь пользователем root, поэтому происходит сбой.

Вы не можете просто вставить sudo перед оператором echo, поскольку это встроенная команда.

Поэтому попробуйте это вместо:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

От man sudo :

-s [command]
     The -s (shell) option runs the shell specified by the SHELL 
environment variable if it is set or the shell as specified in passwd(5).
If a command is specified, it is passed to the shell for execution. 
Otherwise, an interactive shell is executed.
3
ответ дан 6 August 2018 в 00:35

sudo -s создает сеанс оболочки входа в систему. Затем, после того как вы выйдете, вы снова станете обычным пользователем. Затем он выполняет 4-ю строку, но в этот момент вы не являетесь пользователем root, поэтому происходит сбой.

Вы не можете просто вставить sudo перед оператором echo, поскольку это встроенная команда.

Поэтому попробуйте это вместо:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

От man sudo :

-s [command]
     The -s (shell) option runs the shell specified by the SHELL 
environment variable if it is set or the shell as specified in passwd(5).
If a command is specified, it is passed to the shell for execution. 
Otherwise, an interactive shell is executed.
3
ответ дан 7 August 2018 в 18:01

sudo -s создает сеанс оболочки входа в систему. Затем, после того как вы выйдете, вы снова станете обычным пользователем. Затем он выполняет 4-ю строку, но в этот момент вы не являетесь пользователем root, поэтому происходит сбой.

Вы не можете просто вставить sudo перед оператором echo, поскольку это встроенная команда.

Поэтому попробуйте это вместо:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

От man sudo :

-s [command]
     The -s (shell) option runs the shell specified by the SHELL 
environment variable if it is set or the shell as specified in passwd(5).
If a command is specified, it is passed to the shell for execution. 
Otherwise, an interactive shell is executed.
3
ответ дан 10 August 2018 в 06:49

sudo -s создает сеанс оболочки входа в систему. Затем, после того как вы выйдете, вы снова станете обычным пользователем. Затем он выполняет 4-ю строку, но в этот момент вы не являетесь пользователем root, поэтому происходит сбой.

Вы не можете просто вставить sudo перед оператором echo, поскольку это встроенная команда.

Поэтому попробуйте это вместо:

#!/bin/bash

free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

От man sudo :

-s [command]
     The -s (shell) option runs the shell specified by the SHELL 
environment variable if it is set or the shell as specified in passwd(5).
If a command is specified, it is passed to the shell for execution. 
Otherwise, an interactive shell is executed.
3
ответ дан 15 August 2018 в 18:46
  • 1
    Если X работает, я считаю, что его нужно остановить sudo /etc/init.d/xdm stop. – Zuul 30 June 2012 в 04:27
  • 2
    @Zuul, скрипт наверняка запустится в X сессии (я только что сделал). Очищает ли он кеш или нет, я не проверял. – Bryce 30 June 2012 в 05:03
  • 3
    @Zuul, также эта команда останавливает X только при использовании xdm, который не является менеджером отображения по умолчанию. Правильная команда будет sudo service lightdm stop. – Bryce 30 June 2012 в 05:05
  • 4
    да, что-то в этом роде было просто примером, потому что я помнил, что не получал должного результата при запуске X. Но спасибо за добавление комментария. Постараюсь добавить ответ на этот вопрос относительно всех фактов из моего опыта. – Zuul 30 June 2012 в 05:30
  • 5
    Спасибо человек, это сработало. но столкнувшись с другой проблемой, я добавляю дополнительную команду после 3-й строки. это было свободно-м, чтобы увидеть разницу. Но это останавливается на третьей строке. – ScareCrow 30 June 2012 в 17:30

Используйте команды sudo после использования команд non su или переместите команды sudo на другой скрипт. Вы можете их время (например, освободить память)

echo "free -m" | at 7:00

Я верю

0
ответ дан 25 May 2018 в 09:11

Используйте команды sudo после использования команд non su или перемещения команд sudo в другой сценарий. Вы можете рассчитать их время (пример для освобождения памяти)

echo "free -m" | at 7:00

Я полагаю

0
ответ дан 25 July 2018 в 18:15

Используйте команды sudo после использования команд non su или перемещения команд sudo в другой сценарий. Вы можете рассчитать их время (пример для освобождения памяти)

echo "free -m" | at 7:00

Я полагаю

0
ответ дан 4 August 2018 в 15:57

Используйте команды sudo после использования команд non su или перемещения команд sudo в другой сценарий. Вы можете рассчитать их время (пример для освобождения памяти)

echo "free -m" | at 7:00

Я считаю

0
ответ дан 6 August 2018 в 00:35

Используйте команды sudo после использования команд non su или перемещения команд sudo в другой сценарий. Вы можете рассчитать их время (пример для освобождения памяти)

echo "free -m" | at 7:00

Я полагаю

0
ответ дан 7 August 2018 в 18:01

Используйте команды sudo после использования команд non su или перемещения команд sudo в другой сценарий. Вы можете рассчитать их время (пример для освобождения памяти)

echo "free -m" | at 7:00

Я полагаю

0
ответ дан 10 August 2018 в 06:49

Используйте команды sudo после использования команд non su или перемещения команд sudo в другой сценарий. Вы можете рассчитать их время (пример для освобождения памяти)

echo "free -m" | at 7:00

Я полагаю

0
ответ дан 15 August 2018 в 18:46

Другие вопросы по тегам:

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