Linux 每下午6点备份/etc/passwd的Shell脚本

Linux 每下午6点备份/etc/passwd的Shell脚本,linux,bash,shell,Linux,Bash,Shell,如何创建一个cronjob,以便每6点为/etc/passwd创建一个备份 这应该是输出: passwd_<date>.tar.gz passwd.tar.gz 我是一个新的Shell脚本编写人员,正在尝试解决这个问题。我读过关于cron和crontab的文章,但是,我不知道如何使用shell脚本创建备份。。有人能帮我吗。。我们非常欣赏这些例子。提前感谢。它可以像crontab条目一样简单: 0 18 * * * gzip </etc/passwd >/etc/pas

如何创建一个cronjob,以便每6点为/etc/passwd创建一个备份

这应该是输出:

passwd_<date>.tar.gz
passwd.tar.gz
我是一个新的Shell脚本编写人员,正在尝试解决这个问题。我读过关于cron和crontab的文章,但是,我不知道如何使用shell脚本创建备份。。有人能帮我吗。。我们非常欣赏这些例子。提前感谢。

它可以像
crontab
条目一样简单:

0 18 * * * gzip </etc/passwd >/etc/passwd_$(date -I).gz
如果您的
date
变体没有
-I
ISO输出标志,您可以使用稍微详细一点的
date+\%Y-\%m-\%d
,请记住
\%
转义仅在
crontab
文件中需要

没有真正的理由创建
tar.gz
文件,因为您只以任何方式将单个文件放入其中

事实上,老实说,我怀疑压缩它的必要性,因为它不太可能很大。例如,我的密码文件从2282字节压缩到873字节,但即使是未压缩的大小,我也可以很高兴地满足数万年的备份需求——大约每世纪8300万次

如果您愿意复制文件,可以使用以下方法:

0 18 * * * cp /etc/passwd /etc/passwd_$(date -I)

使用crontab-e编辑crontab 添加此行:
0 5***cp/etc/passwd/etc/passwd_$(日期+%a_%d_%Y-%H:%M:%S)

要使用的特定crontab项是:

0 18 * * *  tar -zcf /etc/passwd_`date "+%Y-%m-%d"`.gz  /etc/passwd
这意味着每天18:00(下午6点)运行命令来创建包含/etc/passwd的压缩tar文件(.tar.gz)。您没有说明要将tar文件放在哪里,因此本例将其放在/etc目录中。您可以简单地将第一个/etc/修改为不同的目录。确保它是完整路径,因为cron没有任何当前目录的概念

文件名的日期部分由
date+%Y-%m-%d
生成,它将以“2015-06-04”的形式生成日期,因此生成的文件名将是passwd_2015-06-14.tar.gz。date命令中的+符号表示根据后面的格式字符输出格式化日期。您可以使用“man strftime”查看所有可能代码的列表,以便生成您喜欢的日期字符串。各种格式都是可能的。比如说

date "+%e%b%Y"
将于2015年6月3日产生。确保不要包含空格,因为它们看起来像tar命令的单独参数,而不是文件名的一部分。如果需要,将-或u用于分离器。您可以通过在命令行中键入此日期命令以生成所需格式来练习此操作

有多种方法可以编辑crontab文件。最简单的方法(假设您知道如何使用默认的“vi”编辑器)是键入

 crontab -e

crontab文件(首先为空)在编辑器中打开,并在退出编辑器时提交给cron。

使用带有选项
-e
crontab
直接编辑cronjob:

crontab -e
cronjob的规范是:

minute hour day month day-of-week command-line-to-execute
下面将作业设置为每天下午6:00运行

0 18 * * * tar -czf passwd_`date | tr ' ' '_' | tr ':' '_'`.tar.gz /etc/passwd
该命令可以是脚本,在本例中是一个简单的tar命令。文件名通过调用
date
命令形成,将空格和冒号转换为下划线。这将创建如下所示的文件名:

passwd_Sun_May__3_13_13_00_CDT_2015.tar.gz

您可能还想备份<代码>阴影<代码>与<代码> PASSWD ,也可能还有相应的<代码> dB<代码>文件(如果您在代码中配置了NSwitc.CONF),至少在GNU系统上,考虑使用<代码>日期-I/代码>稍微多一些标准输出%)。
passwd_Sun_May__3_13_13_00_CDT_2015.tar.gz