如何利用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
17for 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