Posts tagged with “cron”

使用 rsync 增量备份文件

通常 A 机器和 B 机器已经在 ~/.ssh/config 中定义并建立了信任关系,因此我们可以直接使用主机别名,而不需要使用 user@B_machine 的方式。

sync_files.sh 脚本

#!/bin/bash

# 定义源和目标目录
SOURCE_DIR="/data/files/"
DEST_DIR="B_machine:~/backups/A_machine/data/files"

# 执行 rsync 命令
rsync -av --exclude='tmp/' "$SOURCE_DIR" "$DEST_DIR"
  1. 确保脚本有执行权限:

    chmod +x sync_files.sh
    
  2. 使用 cron 设置每五分钟执行一次该脚本:

    crontab -e
    

    添加:

    */5 * * * * /path/to/sync_files.sh
    

Set done a simple automatically backup system for this site

I didn't forget I haven't set up a backup system for this blog site. So I got it done today.

Two things need to backup, they are

  1. the MySQL database
  2. the uploads directory that contains the pictures, files you've uploaded to this site

Since local backup is not safe, finally I chose the Yandex.Disk as my cloud storage. Just register an account in 5 minutes and you will get 10G cloud storage with Linux friendly sync feature. Yandex.Disk also supports symbol links, that's quite good.

run crontab -e and fill in below lines, the setting was done!

 15 3 * * * mysqldump --databases blog | gzip > /home/zhongwei/Yandex.Disk/backups/mysql/blog_`date '+\%Y\%m\%d-\%H\%M\%S'`.sql.gz
 20 3 * * * find /home/zhongwei/Yandex.Disk/backups/mysql/blog* -mtime +30 -exec rm {} \;

As the uploads folder for my blog, what you need to do is creating a symbol link to the Yandex.Disk folder:

ln -s /www/blog/uploads /home/zhongwei/Yandex.Disk/backups/blog_uploads

This blog is inspired by source