Перемещение каталога кэша Google Chrome на RAM-диск автоматически при загрузке в Linux

714
Vlastimil

ОС: Linux Mint 19 Cinnamon 64-bit.


Я знаю, как создать RAM-диск ( tmpfs), на самом деле он смонтирован /etc/fstabтак:

none /ramdisk tmpfs size=2G,mode=0777 0 0 

Как видите, он имеет 2 ГиБ и доступен для всех пользователей на моем персональном компьютере, в любом случае это не имеет значения.


Я знаю о --disk-cache-dirопции Google Chrome. Но я не хочу этим пользоваться.

Причина в том, что я хочу иметь возможность запускать Chrome любым удобным для меня способом, имея один и тот же каталог кеш-памяти. Просто есть слишком много способов запустить Chrome. Что если я заменил значок, например? Это непригодно для меня по крайней мере.


Я ищу руководство по созданию сценария оболочки, который будет создавать символическую ссылку на каталог кэша Chrome на моем RAM-диске, который смонтирован, как показано выше.

Этот сценарий я намерен поместить в root«s, cronиспользуя sudo crontab -eследующие:

@reboot /home/vlastimil/Development/sh/google-chrome-cache-ramdisk 

Обратите внимание, что у меня не включен своп в моей системе.

0

1 ответ на вопрос

0
Vlastimil

Предположим, у вас есть RAM-диск ( tmpfs), смонтированный во время загрузки /etc/fstab, вы можете сделать это следующим образом:

  1. Во-первых, убедитесь, что ваш скрипт завершится с ошибками, это важно, не пропустите этот шаг.

  2. Я рекомендую вам начать с определения констант для облегчения обслуживания.

  3. Я верю, но не уверен - не стесняйтесь меня поправлять - вам нужно использовать абсолютные пути команд, поскольку вы собираетесь запускать скрипт из crontab.

  4. На самом деле, похоже, что whichприведенная ниже команда работает без каких-либо проблем, эту команду я использовал в этом ответе, чтобы убедиться, что в каждом Linux, где бы ни находились двоичные файлы, они были найдены.

  5. Создайте структуру каталогов на RAM-диске для кеша Google Chrome.

  6. Это будет работать только при наличии доступа, поэтому сделайте себя владельцем всего RAM-диска.

  7. Поскольку мы не можем знать, что может произойти, было бы неплохо удалить, возможно, существующий каталог кэша (символическую ссылку или реальную).

  8. Наконец, давайте создадим символическую ссылку для каталога кеша на ваш RAM-диск.

Обратите внимание, что решение ниже создаст оба:

  1. Нормальный Cacheкаталог.

  2. В дополнение к оригинальному решению, также Media Cacheкаталог, который Chrome создаст при загрузке некоторых носителей.


Конечный скрипт может выглядеть так (должен быть переносимым):

#!/bin/sh  ######################################################## ## Google Chrome ## ## Cache on RAM disk ## ########################################################  set -o nounset set -o errexit  # constants definitions for easy edits username="vlastimil" ramdisk_path="/ramdisk" cache_path_ramdisk="$/google-chrome/Default" cache_path_userdir="/home/$/.cache/google-chrome/Default"  # create directory structure on RAM disk $(which mkdir) -p "$"  # change ownership of RAM disk to my user $(which chown) -R "$":"$" "$"  # remove possibly existing cache directory (symlink or real) $(which rm) -r -f "$"  # create symlink for cache directory onto RAM disk $(which ln) -s "$" "$"