上传时自动修改文件

上传时自动修改文件

我需要创建到几个文件的安全远程连接(SFTP,WebDAV/HTTPS,...)。

用户需要通过下载->编辑->上传替换来连接和编辑这些文件,或者更好的是,通过就地编辑它们(如果是 WebDAV)。

每次更新/替换文件时,服务器(Linux 或作为最后的手段 Mac OS X Server 10.6)都应创建修订版:可以吗?

如有任何建议,我们将不胜感激。

答案1

您可以使用 inotify cron(incron)和 git(快速版本控制系统)

安装 icron:

sudo apt-get install incron

安装 git:

sudo apt-get install git-core

允许root使用incron:

echo "root" > /etc/incron.allow

创建 git 存储库:

mkdir /git
cd /git
git init

创建脚本以自动提交 /usr/local/sbin/git-autocommit:

#!/bin/bash

REP_DIR="/git"
NOTIFY_DIR="/srv"

cd $REP_DIR
GIT_WORK_TREE=$NOTIFY_DIR /usr/bin/git add .
GIT_WORK_TREE=$NOTIFY_DIR /usr/bin/git commit -a -m "auto"

添加 incron 规则:

sudo incrontab -e
/srv IN_MODIFY,IN_CREATE,IN_MOVED_FROM,IN_MOVED_TO /usr/local/sbin/git-autocommit

我喜欢 git 和 Ubuntu)

答案2

您可以使用版本控制系统,例如 Subversion。但是,它要求用户使用它,而不是直接进行文件操作。或者,您可以使用 rsnapshot(或类似的备份程序)进行每小时备份。这样,您可能会丢失一些中间版本,但用户不必使用 SVN。

相关内容