从命令行同步 Firefox

作者:Mitch Frazier

有很多解决方案可以同步 Firefox,我必须承认我还没有用过任何一个。当我阅读这些描述时,我总觉得它们不会按照我想要的方式,在我想要的时间做我想做的事情。 需求是发明之母,所以我编写了自己的 shell 脚本来完成我所需要的。

我在四台 Linux 系统和一台 Windows 系统上运行了 Firefox,并且它们都安装了相同的扩展。 我的同步只是从另一台系统进行 rsync Firefox 设置目录。 这会复制书签和密码,而且我已经使用它很长时间了,没有任何不良影响。

#!/bin/bash

user_name=mitch

if [[ ! "$1" ]]; then
	echo "Usage: $0 FROM-HOST"
	exit 1
fi

# Check for cygwin.
if [[ -d /cygdrive/c ]]; then
	rpath=/home/$user_name/.mozilla/firefox/default.enr
	lpath="$(find /cygdrive/c/Documents\ and\ Settings/$user_name/Application\ Data/Mozilla/Firefox/Profiles/ -iname '*.default')"
else
	rpath=~/.mozilla
	lpath=~/.mozilla
fi

rsync -av --delete --exclude=Cache --exclude=lock "$1":"$rpath/" "$lpath"

如果您安装了 Cygwin,该脚本也可以从 Windows 系统运行。 它的用法很简单:首先关闭 Firefox,然后调用脚本并为其提供要同步的主机名或 IP 地址。

$ syncff my-other-system

显然,您需要修改脚本以确保其使用的路径对您的安装有效。

一个缺点是该脚本不能将 Cygwin 系统用作另一台系统。 这应该是可行的,但是需要修改和测试脚本才能实现。 当同步 Linux 系统时,我同步整个.mozilla目录,即使您使用 Seamonkey 或安装了 Eclipse 浏览器组件,它也可能有效,但请测试一下以确保安全,并在同步之前关闭它们。

你可能会注意到rsync命令不仅排除了 Cache 目录,还排除了一个名为lock的文件。 如果你不排除lock文件,Firefox 会认为启动时另一个实例已经在运行。

Mitch Frazier 是 Emerson Electric Co. 的嵌入式系统程序员。 Mitch 自 2000 年代初期以来一直是 Linux Journal 的撰稿人和朋友。

加载 Disqus 评论