Wiki异地备份脚本

来自linux中国网wiki
跳到导航 跳到搜索


脚本主体

#!/bin/bash
#run on root user  file name tran
#var 
#on freebsd yesterday
TODAY=`date -v -1d +%Y%m%d`

#on linux 
#TODAY=`date +%Y%m%d`
#TODAY=`date -d '1 days ago'  +%Y%m%d` #yesterday
#20180813

#显示前一天为
#DATE1=`date -d '1 days ago' +%Y%m%d` 加-d参数可以设置与当前日期的计算时间,同样,前2天为'2 days ago',去掉ago则为当前日期之后多少天

rsync -avz   /data/www/wiki.linuxchina.net/  /home/evan/wiki/
cp  -a /data/backup/wikilinuxchina_${TODAY}.sql.gz /home/evan/

sleep 4
chown -R evan:evan  /home/evan

su - evan -c "rsync -avz  /home/evan/wiki/   [email protected]:~/wikibak/"
su - evan -c "rsync -avz  /home/evan/wikilinuxchina_${TODAY}.sql.gz  [email protected]:~/wikibak/"

rm -f /home/evan/wikilinuxchina_${TODAY}.sql.gz

#10  20  * * * /bin/bash /data/mon/tran  2>&1 >/dev/null

知识点

shell脚本中使用其他用户执行脚本

su - root -c "ls -l /root"
Warning: Permanently added '119.23.28.89' (RSA) to the list of known hosts.
[email protected]'s password: 
bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: remote command not found (code 127) at io.c(226) [Receiver=3.1.2]

原因server 没有安装rsync

see also

其他用户身份运行程序—— su、sudo、runuser

shell脚本中使用其他用户执行脚本

FreeBSD下取得昨天日期的方法