0%

利用ftp更新grav博客

如何利用ftp更新grav博客。

Grav是基于静态markdown文件的内容发布框架,简单易用。我有时想在手机端写markdown文件,连同图片一起通过FTP上传到服务器,服务器端自动移动到文件名中指定的目录,grav自动识别并发布。
我的文件名格式为:
path-to-file-directory_filename.jpg或:path-to-file-sirectory_filename.md

这里要解决3个问题:

  • 在文件名中解析出目录信息并创建目录
  • 改变文件权限以使nginx能够访问
  • 自动移动文件

以下为shell脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for full_name in `ls /path/to/ftp/*.jpg /path/to/ftp/*.md`
do
# Get file's full name
filename="${full_name##*/}"
# Get file name without path
fn=${file_name#*_}
# Get path infomation in file name
dir=${filename%_*}
# Change file's owner
chown www-data:www-data $full_name
# Create directory
absolute_dir=/the/path/to/your/grav/blog/$dir
mkdir -p $absolute_dir
chown www-data:www-data $absolute_dir
# Move file
mv $full_name $absolute_dir/$fn
done

创建守护进程,定时检测并移动文件:sudo crontab -e

守护进程中,设定每隔一小时执行操作:
@hourly /path/to/shell/file/auto_mv_file.sh