代码如下:
#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz
#导出mysql数据库
/usr/local/mysql/bin/mysqldump -uroot -ppassword --databases db1 > /home/backup/databackup.sql
#压缩数据库
tar zcf /home/backup/$DataBakName /home/backup/databackup.sql
rm -rf /home/backup/databackup.sql
#压缩网站数据
tar zcvf /home/backup/$WebBakName /home/wwwroot
#使用lftp同步备份目录
lftp -u user,password -e "mirror -R --only-newer /home/backup /backup" ftp.yoursite.cn
exit
END
# edit by www.
添加执行权限:
crontab实现每天自动运行:
crontab -e
输入内容:
00 00 * * * /root/AutoBackupToFtp.sh
说明:
00 00为时间分/小时,可自行修改,例如:30 12 ***,则每天12.30运行此脚本。
说明:
以上代码,用到了lftp命令,及crontab自动化任务。
有关lftp命令的用法,请参考:
lftp自动备份文件和数据库上传FTP服务器的shell脚本
linux下lftp命令使用小结
lftp命令增量备份网站的方法分享
linux下lftp命令行上传或下载整个文件夹的方法
linux下lftp命令中mirror的用法详解
linux下lftp连接ftp服务器进行上传与下载的方法详解
有关crontab的用法,请参考:
linux中crontab定时执行任务命令的详解
linux中crontab定时自动执行计划任务的方法
crontab学习笔记
学习linux设置定时任务的crontab命令
crontab 命令格式与例子
linux定时任务设置crontab学习
不错的crontab教程
which 命令
功能说明:查找文件。
语 法:which [文件...]
补充说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
参 数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
来看几个例子。
1,查找httpd文件(apache服务器)的位置
2,查找mysql文件的位置
功能说明:指定在建立文件时预设的权限掩码。
语 法:umask [-S][权限掩码]
补充说明:umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
参 数:
-S 以文字的方式来表示权限掩码。
当最初登录到系统中时, umask命令确定了你创建文件的缺省模式。这一命令实际上和
chmod命令正好相反。
系统管理员必须要设置一个合理的umask值,以确保创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。
在已经登录之后,可以按照个人的偏好使用umask命令来改变文件创建的缺省权限。相应的改变直到退出该s h e l l或使用另外的umask命令之前一直有效。
一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希
望永久性地设置自己的umask值,那么就把它放在自己$ H O M E目录下的.profile或.bash_profile文件中。
如何计算umask值
umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是
6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说, umask中各个数字最大
可以到7。
该命令的一般形式为:
umask nnn
其中n n n为umask置0 0 0 - 7 7 7。
让我们来看一些例子。
计算出umask值:
可以有几种计算umask值的方法,通过设置umask值,可以为新创建的文件和目录设置缺省权限。表1 - 8列出了与权限位相对应的umask值。
在计算umask值时,可以针对各类用户分别在这张表中按照所需要的文件/目录创建缺省权限查找对应的umask值。
例如,umask值002 所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5。
还有另外一种计算umask值的方法。我们只要记住umask是从权限中“拿走”相应的位即可。
umask值与权限
umask 文件目录
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
例如,对于umask值0 0 2,相应的文件和目录缺省创建权限是什么呢?
第一步,我们首先写下具有全部权限的模式,即7 7 7 (所有用户都具有读、写和执行权限)。
第二步,在下面一行按照umask值写下相应的位,在本例中是0 0 2。
第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。
第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即可。
其中umask值为0 0 2:
1) 文件的最大权限rwx rwx rwx (777)
2) umask值为0 0 2 - - - - - - -w-
3) 目录权限rwx rwx r-x (775) 这就是目录创建缺省权限
4) 文件权限rw- rw- r-- (664) 这就是文件创建缺省权限
假设这次umask值为0 2 2:
1) 文件的最大权限rwx rwx rwx (777)
2 ) umask值为0 2 2 - - - -w- -w-
3) 目录权限rwx r-x r-x (755) 这就是目录创建缺省权限
4) 文件权限rw- r-- r-- (644) 这就是文件创建缺省权限
常用的umask值
表1-9列出了一些umask值及它们所对应的目录和文件权限。
表1-9 常用的umask值及对应的文件和目录权限
0 2 2 7 5 5 6 4 4
0 2 7 7 5 0 6 4 0
0 0 2 7 7 5 6 6 4
0 0 6 7 7 1 6 6 0
0 0 7 7 7 0 6 6 0
如果想知道当前的umask 值,可以使用umask命令:
如果想要改变umask值,只要使用umask命令设置一个新的值即可:
$ umask 002
确认一下系统是否已经接受了新的umask值:
在使用umask命令之前一定要弄清楚到底希望具有什么样的文件/目录创建缺省权限。否则可能会得到一些非常奇怪的结果;例如,如果将umask值设置为6 0 0,那么所创建的
文件/目录的缺省权限就是0 6 6!
除非你有特殊需要,否则没有必要去管他,系统默认的值“022”umask是用的掩码,至于掩码的概念,从基础学吧,这里不说了。
linux中的文件/目录许可是用4位八进制数表示的。其中第一个八进制数用来表示特殊许可设置,第二个数字用来设置文件所有者的许可,第三个数字用来设置组许可,第四
个数字用来设置所有人的许可。
八进制 二进制 权限
0 000 没有
1 001 执行权
2 010 写权
3 011 写执行
4 100 读权
5 101 读执行
6 110 读写
7 111 读写执行
要点:
一、文件基数为666,目录为777,即文件无设x位,目录可设x位。
二、chmod是设哪个位,哪么哪个位就有权限,而umask是设哪个位,则哪个位上就没权限。
只要记住umask是从权限中“拿走”相应的位即可。
umask值与权限的对照表:
--------------------
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0