我怎么能执行自动的数据库备份和清理从R2020b Polyspace访问吗?

22日视图(30天)

接受的答案

MathWorks支万博1manbetx持团队”class=
编辑:MathWorks支万博1manbetx持团队 2022年9月15日
这里是一个例子如何备份和清理一周一次的计划:
1)“crontab”看起来应该遵循(作为根用户运行的crontab - e):
0 0 0 /var/lib/polyspace/cleanup_access * *。sh > /var/backups/polyspace/cleanup_access。日志2 > & 1
0 1 0 /var/lib/polyspace/backup_access * *。sh > /var/backups/polyspace/backup_access。日志2 > & 1
2)如果/var/backups/polyspace不存在,创建该文件夹使用shell命令:
mkdir/var/backups/polyspace
警告:文件夹/var/backups/polyspace应该包含足够的空闲磁盘空间来存储数据库的副本。否则,您可能会遇到问题在备份。
了解数据库的大小,输入shell命令:
  • 对于Polyspace R2022a和超越:
码头工人exec - polyspace-access-db-0-main psql - a - b - u postgres prs_data - t - c”选择pg_size_pretty (pg_database_size (prs_data))”
  • 通过R2021b为Polyspace R2020b:
码头工人exec - polyspace-access-db-main psql - a - b - u postgres prs_data - t - c”选择pg_size_pretty (pg_database_size (prs_data))”
知道/var/backups/polyspace可用的磁盘空间,输入shell命令:
df- h / var
如果没有足够的空间在/ var,代替var /备份/ polyspace你可以选择另一个文件夹的备份文件,并相应地更新计划。
3)把/var/lib/polyspace以下3个文件:
  • cleanup_access.sh:
#/ bin / sh
- e
BASEDIR =美元(目录名“0”)
#ACCESS_STORAGE_DIR变量根据Polyspace安装路径。
#集群中的可用路径的存储目录设置的集群管理界面。
#另外,您能找到这条路的设置。通过寻找etlStorageDir json文件。
ACCESS_STORAGE_DIR = /地方/ home / dtstrunner / ps_access / appdata / polyspace-access /存储
日期
回声”“
回声“清理开始
BASEDIR美元/ make_clean_commands.pl
回声”“
回声清洁:“
BASEDIR美元/ cleanup.pscauto
回声”“
回声“请求清洁ACCESS_STORAGE_DIR美元
cp BASEDIR美元/清理。pscauto ACCESS_STORAGE_DIR /美元。
  • backup_access.sh:
对于Polyspace R2022a和超越:
#/ bin / sh
- e
日期
回声“暂停服务
码头工人停止polyspace-access-etl-0-main polyspace-access-web-server-0-main
回声“备份数据库
时间码头工人exec polyspace-access-db-0-main pg_dumpall - u postgres | gzip > /var/backups/polyspace/backup_access.gz
回声“恢复服务
码头工人开始polyspace-access-etl-0-main polyspace-access-web-server-0-main
通过R2021b为Polyspace R2020b:
#/ bin / sh
- e
日期
回声“暂停服务
码头工人停止polyspace-access-etl-main polyspace-access-web-server-main
回声“备份数据库
时间码头工人exec polyspace-access-db-main pg_dumpall - u postgres | gzip > /var/backups/polyspace/backup_access.gz
回声“恢复服务
码头工人开始polyspace-access-etl-main polyspace-access-web-server-main
  • make_clean_commands.pl:
#! / usr / bin / perl
#1。请改变命令列出项目根据您的需要(如二进制道路、主机名、登录、协议、密码)
我的$ ps_access_command = " / usr /地方/ Polyspace_Server / R2020b / polyspace / bin / polyspace-access”主机access.mycompany.org协议http -list-project登录管理加密密码ABABABABABABABABABA”;
#2。请改变输出文件的位置
我的$ pscauto_filename =’。/ cleanup.pscauto ';
#3所示。
美元值= qx (美元ps_access_command);
@lines = grep (/ ProjectsWaitingForDeletion \ /。* /分(' \ n ',美元值));#使用这个递归删除
#@lines = grep (/ ProjectsWaitingForDeletion \ /。* RUN_ID \ d +美元/分(' \ n ',美元值));#使用这只删除叶节点
地图@lines = {s / (. + ?) (RUN_ID。*) ?美元/ delete_project \“1 \ \”/ g;$ _}@lines;
打开(跳频,“>”,美元pscauto_filename)或死美元!;
打印跳频连接(“\ n”, @lines);
关闭(跳频);
打印“\ n pscauto_filename成功写美元! \ n \ n”;
细节,必须调整安装:
  1. make_clean_commands.pl:路径,用户名和密码(注意:加密密码和其他服务器命令)
  2. cleanup_access.sh:根据Polyspace ACCESS_STORAGE_DIR访问安装路径
  3. 如果任何路径都改变了,backup_access.sh定时任务也必须调整吗
请注意:
  • 应该有几个GB的空闲磁盘空间以来/var/backups数据库(甚至压缩)可能很大。
  • 备份可以相当长一段时间在操作和数据库不可用,所以这应该是一夜之间或在周末完成。
请注意,这是非常简单的,但它的工作原理(在Debian和Ubuntu R2020b)。先进的使用、日志旋转和旋转备份可能会很有趣(https://rotate-backups.readthedocs.io/en/latest),以及NFS / AFS / Samba /…本地备份,而不是把它们变成/var/backups.用户可能还想分发这些文件通过木偶ansible /厨师,以防他们有多个实例访问。关于“傀儡”的更多信息,请参阅:https://puppet.com/blog/automating-puppet-cron-jobs-and-scheduled-tasks/
有关“crontab”语法的更多信息可以在这里找到:
2的评论
马丁贝克”class=
马丁贝克 2022年5月24日
注意,因为R2022a容器名称已经改变了。现在:polyspace-access-etl - 0 小镇,polyspace-access-web-server - 0 小镇和polyspace-access-db - 0 小镇(零是新的)

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!