专栏首页陶士涵的菜地[Linux] PHP程序员玩转Linux系列-自动备份与SVN

[Linux] PHP程序员玩转Linux系列-自动备份与SVN

1.PHP程序员玩转Linux系列-怎么安装使用CentOS

2.PHP程序员玩转Linux系列-lnmp环境的搭建

3.PHP程序员玩转Linux系列-搭建FTP代码开发环境

4.PHP程序员玩转Linux系列-备份还原MySQL

我的代码经常在开发修改,为了代码的安全性,比如哪天误删了文件,或者哪天改错东西了,可以恢复回来,我要搞代码备份.备份代码,我先做最简单的,使用linux的定时机制加shell命令打包文件,每天按日期保存,保存最近7天的备份.

前期准备的命令

date命令,打印当前系统时间,加个参数+%F,打印格式化的全日期, date +%F. 命令替换符`` ,获取到里面命令的返回值.

字符串中使用变量${变量名},例如echo "hi ${name}"

打包命令tar -czf 包名称 *, c是create创建, z是gzip压缩,f是file使用文件形式, 例如: tar -czf 1.tar.gz * 把当前目录的所有文件打包到1.tar.gz中

解压命令tar -xf 包名称 , x是extract提取,例如: tar -xf 1.tar.gz

查找命令find / -mtime +10 -exec rm {} \; mtime是 modified time修改时间,单位是天, +10是10天以前;-exec是执行命令, -exec 命令 {} \;大括号会被当前查找的结果替换,\是固定的转义用的.例如: find /root -mtime +10 -exec wc -l {} \; 统计10天前文件的行数

最终的脚本

#!/bin/base
#定义备份文件路径
backupFilePath="/root/web";
#定义备份文件名称
currentDate=`date +%F`;
backupFileName="web_backup_${currentDate}.tar.gz";
#定义需要备份的目录
sourceFileDir="/var/www/html/";
#定义备份文件存储的目录
destinationDir="/root/web/"
#打包备份
cd $sourceFileDir;
tar -czf $backupFileName *;
mv $backupFileName $destinationDir;
#删掉10天以前的文件
find $destinationDir -mtime +10 -exec rm {} \;

开启定时

编辑/etc/crontab文件

*/1 * * * * root sh /root/shell/backup.sh

分钟 小时 天 月 周几 用户 命令,*/是每的意思

搭建SVN服务端

现在代码可以按时自己打包保存一份,都是全部代码一块备份,现在我要搭建SVN服务器,可以按修改版本保留代码,更加智能化.

安装 svn,使用命令,一句话 yum install subversion.

安装完成以后需要创建一个代码仓库,使用这个命令svnadmin create svnrepos/ 会在当前目录创建一个svnrepos的目录,这个就是仓库的目录.

配置SVN

仓库建好了,现在去配置svn的用户,进入到svnrepos/conf/目录,这里有三个配置文件authz,passwd,svnserve.conf

1.配置svnserve.conf

authz-db = authz

password-db = passwd

按字面意思理解吧,应该是开启验证使用这两个文件

2.配置authz

一组用户,这组用户可以读写 [groups] svn_users=shihan1,shihan2 [/] @svn_users= rw

3.配置passwd

这个是配置密码

[users] shihan1=aaabbbccc shihan2=aaabbb

开启SVN服务

使用命令svnserve -d -r svnrepos/ -d是后台服务 -r是使用目录

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [MySQL] B+树索引为什么比B树的好

    B树的数据指针存储在各层节点中 , B+树的数据都存储在了叶子节点 , 那查找的时候B+树比B树效率按逻辑应该更高吗?

    陶士涵
  • [日常]nginx与网络事件模型

    陶士涵
  • [PHP]MySQL的wait_timeout与pdo对象

    Warning: Error while sending QUERY packet 或者 MySQL server has gone away

    陶士涵
  • 【AI硅脑】超越GPU,FPGA、ASIC和更智能的手机

    【新智元导读】本文从云服务、on-device 和 hybrid 三个角度分析AI硬件的进步,以及各大芯片公司、巨头科技公司以及初创企业和研究机构如何将 CPU...

    新智元
  • linux相关的练习题

    吾爱乐享
  • 使用命令行在Linux中归档、压缩和提取文件

    tar和gzip提供一个标准界面,用于在Linux上创建存档和压缩文件。这些实用程序占用大量文件,将它们一起保存在存档中,并压缩存档可以节省空间。tar不会自己...

    angel_郁
  • Linux基础知识第九讲,linux中的解压缩,以及软件安装命令

    上面说的是打包.是指文件可以合并到一起.但不能压缩. 压缩有两种方式,一种是 gzip 一种是bzip2 (2念做two)

    IBinary
  • Eclipse和Tomcat联合进行网络编程的环境搭建

    进入网站点击打开链接下载Tomcat7(后面我会说明为什么是7,而不是最新的9)。然后解压,接着配置如下三个环境变量

    提莫队长
  • 如何提高代码质量

    说起代码质量,脑子里会冒出很多词,命名规范、格式规范、日志规范、单元测试覆盖率...

    用户1516716
  • CentOS 7.1 安装ntfs-3

    下载: wget http://nchc.dl.sourceforge.NET/project/fuse/fuse-2.X/2.9.2/fuse-2.9.2.t...

    py3study

扫码关注云+社区

领取腾讯云代金券