web-dev-qa-db-ja.com

Linuxでの起動時にGoogle ChromeキャッシュディレクトリをRAMディスクに自動的に移動する

OS:Linux Mint 19 Cinnamon64ビット。


RAMディスク(tmpfs)を作成する方法を知っていますが、実際には次のように/etc/fstabにマウントしています。

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

ご覧のとおり、2 GiBで、パソコンのすべてのユーザーがアクセスできます。


--disk-cache-dir Google Chromeオプションについて知っていますが、使いたくありません。

理由は、同じChromeキャッシュディレクトリを使用して、RAMを好きな方法で実行できるようにしたい、という理由です。実行する方法が多すぎます。私のChrome。たとえば、アイコンを置き換えた場合はどうなりますか?少なくとも私には使用できません。


上記のようにマウントされたChromeディスクへのRAMキャッシュディレクトリへのシンボリックリンクを作成するシェルスクリプトの作成に関するガイダンスを求めています。

次のようにSudo crontab -eを使用してrootcronに挿入する予定のスクリプト:

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

システムでスワップを有効にしていないことに注意してください。

1

起動時に/etc/fstabにRAMディスク(tmpfs)がマウントされているとすると、次のように実行できます。

  1. まず、スクリプトがエラーで終了することを確認します。これは重要です。この手順をスキップしないでください。

  2. メンテナンスを簡単にするために、定数の定義から始めることをお勧めします。

  3. 私は信じていますが、確信が持てません-私を訂正してください-crontabからスクリプトを実行するつもりなので、コマンドの絶対パスを使用する必要があります。

  4. 実際には、以下のcommand -vコマンドは問題なく機能しているようです。この回答で使用したこのコマンドは、バイナリがどこにあっても、各Linuxで確実に検出されるようにするために使用しました。

  5. RAMディスクのGoogle Chromeキャッシュ用のディレクトリ構造を作成します。

  6. アクセスできる場合にのみ機能するため、RAMディスク全体の所有者にしてください。

  7. 何が起こるかわからないので、既存のキャッシュディレクトリ(シンボリックリンクまたは実数)を削除することをお勧めします。

  8. 最後に、キャッシュディレクトリのシンボリックリンクをRAMディスクに作成しましょう。

以下のソリューションは両方を作成することに注意してください。

  1. 通常のCacheディレクトリ。

  2. 元のソリューションに加えて、Media Cacheディレクトリもあります。これは、メディアの読み込み時にChrome作成されます。


最終的なスクリプトは次のようになります(移植可能である必要があります)。

#!/bin/sh

########################################################
##    Google Chrome                                   ##
##                               Cache on RAM disk    ##
########################################################

# exit script when it tries to use undeclared variables
set -u
# exit script when any command fails
set -e

# constants definitions for easy edits
username="vlastimil"
ramdisk_path="/ramdisk"
cache_path_ramdisk="${ramdisk_path}/google-chrome/Default"
cache_path_userdir="/home/${username}/.cache/google-chrome/Default"

# create directory structure on RAM disk
$(command -v mkdir) -p "${cache_path_ramdisk}"

# change ownership of RAM disk to my user
$(command -v chown) -R "${username}":"${username}" "${ramdisk_path}"

# remove possibly existing cache directory (symlink or real)
$(command -v rm) -r -f "${cache_path_userdir}"

# create symlink for cache directory onto RAM disk
$(command -v ln) -s "${cache_path_ramdisk}" "${cache_path_userdir}"
0

あなたが探しているのは https://aur.archlinux.org/packages/profile-sync-daemon/ これはプロセスを自動化します。

1