我需要写一个 shellscript .sh
文件来创建一个压缩/var/www
以用户身份保存文件sudo
。
我有自己的 Ubuntu 服务器,网站托管在上面,也就是说我的源代码在/var/www
文件夹中。但/var/www
只有root
用户才具有可写的权限。
我想编写一个脚本来备份/var/www
文件夹备份为压缩每次我运行该脚本时都无需询问 root 用户密码。
答案1
您好,欢迎来到询问Ubuntu,
好吧,我不确定为什么/var/www
目录归 root 所有,而从技术上讲,它应该是www-data
默认的所有者和组。不过,实现此目的的最简单方法是使用下面的脚本,我用它来压缩我的一些目录。我改用tar
命令。
创建 Shell 脚本
打开一个终端(使用CTRL++ ALT)T并创建一个新的 bash 文件。
键入命令
nano filenam.sh
并粘贴如下(根据需要更改脚本)。
/bin/bash #!/bin/bash TIME=`date +%F-%H%M%S` # 备份文件的时间戳 FILENAME="backuup nam-$TIME.tar.gz" #定义备份时的文件名格式 SRCDIR="/home/parth/to/source" # 备份目录的位置 DESDIR="/home/path/to/destination" # 备份目录的目标(您需要备份的位置) tar -cpzf $DESDIR/$FILENAME $SRCDIR # 执行命令
- 保存脚本(使用CTRL+O和 Enter)。然后退出(使用CTRL+ X)。
执行命令
- 只需运行
sudo sh filename.sh
即可执行(sudo 将以 root 权限运行)
您还可以将其添加到 cronjob 中,它将根据您的需要自动执行该过程。此 bash 脚本会附加时间戳并逐步备份。这只是一个简单的脚本,我将其进行了修改,以方便您使用。
参考官方Ubuntu 文档在Shell 脚本我从中获取的 &bash 脚本兄弟专家。
希望能帮助到你!