다음 /etc/crontab
코드를 사용하여 지난 30일 동안 데이터베이스의 일일 백업을 생성합니다.
0 8 * * * mysqldump -u root -PASSWORD --all-databases > /root/backups/mysql/db.sql
1 8 * * * zip /root/backups/mysql/db-$(date +\%F-\%T-).sql.zip /root/backups/mysql/db.sql
2 8 * * * rm /root/backups/mysql/db.sql
2 8 * * * find /root/backups/mysql/* -mtime +30 -exec rm {} \;
내 질문:
비밀번호를 어디에 입력해야 합니까 -PASSWORD
? 이렇게 하면 내가 실수로 이 파일의 내용을 변경하여 가까운 사람이 이를 보게 되면 내 비밀번호가 노출됩니다.
비밀번호를 입력하지 않고 스크립트를 사용할 수 있나요? 아니면 거기에 cronjob의 비밀번호를 쓰도록 강요하지 않는 유사한 구문을 알고 있습니까?
답변1
전체 덤프, 백업 및 정리를 수행하는 스크립트를 만듭니다.
스크립트를 예약합니다.
또한 암호는 mysql
보호된 파일에 저장될 수도 있으며 명령줄에 입력할 필요가 없습니다.
MySQL에는 "최종 사용자 비밀번호 보안 가이드"검토하고 싶은 문서.
문서를 요약하면:
.my.cnf
다음과 같이 홈 디렉터리에 비밀번호를 만들고 추가합니다 .
[client]
password=your_pass
그런 다음 파일에 대한 다른 사용자의 읽기 권한을 제거합니다.
$ chmod 600 .my.cnf
또는 동등하게,
$ chmod u=rw,go-rwx .my.cnf
파일 이름을 지정하고 홈 디렉터리에 저장하면 .my.cnf
해당 파일은 클라이언트 프로그램에서도 자동으로 사용됩니다.mysql
mysqldump
그러나 백업 등을 자체 스크립트에 넣고 예약하십시오. 이는 많은 cron 작업보다 유지 관리가 더 쉽습니다.