我正在创建一个移动mysql创建的日志文件的脚本。
我需要定期创建我需要移动的文件,就像这样
gorf @ 212370~ / Desktop $ ls -l / mysql-log /
-rw-rw ---- 1 mysql mysql 148 11月13日18:39 bin-log.000019
-rw-rw ---- 1 mysql mysql 126 Nov 13 18:42 bin-log.000020
-rw-rw ---- 1 mysql mysql 148 11月13日18:44 bin-log.000021
-rw-rw ---- 1 mysql mysql 148 11月13日18:50 bin-log.000022
-rw-rw ---- 1 mysql mysql 148 11月13日18:50 bin-log.000023
-rw-rw ---- 1 mysql mysql 107 11月13日18:50 bin-log.000024
-rw-rw ---- 1 mysql mysql 1456 Nov 13 18:50 bin-log.index
我用来移动文件的用户是
gorf @ 212370~ / Desktop $ groups gorf
gorf:gorf adm cdrom sudo dip plugdev lpadmin sambashare mysql
由于文件归mysql所有,而用户" gorf"属于" mysql"小组,我原以为能够移动文件。但是,如果我尝试移动文件,我会被拒绝
gorf @ 212370~ / Desktop $ mv /mysql-log/bin-log.000023 ./
mv:无法将'/mysql-log/bin-log.000023'移动到'./bin-log.000023':权限被拒绝
,但如果我复制它们
gorf @ 212370~ / Desktop $ cp /mysql-log/bin-log.000023 ./
没关系。
在脚本中,我需要移动文件,因为这些文件是增量备份的一部分。一种解决方案是以root身份运行脚本,但出于安全考虑,我正在寻找更优雅的解决方案。
我可以做些什么来解决这个问题?
答案 0 :(得分:1)
您无法删除文件的原因是root拥有/ mysql-log目录。您需要将所有权更改为群组' mysql':
sudo chgrp mysql /mysql-log