从命令行同步 Firefox
发表于 2009 年 3 月 6 日
有很多解决方案可以同步 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 会认为启动时另一个实例已经在运行。