#!/usr/bin/env bash # clone from git@git.opencomputing.cn/yumoqing/sage # git clone https://git.opencomputing.cn/yumoqing/sage cdir=$(pwd) uname=$(id -un) gname=$(id -gn) sudo apt install redis-server python3 -m venv py3 source py3/bin/activate pip install -r requirements.txt mkdir pkgs cd pkgs git clone https://git.opencomputing.cn/charles/smssend.git cd smssend pip install . git clone https://git.opencomputing.cn/yumoqing/bricks cd bricks/bricks ./build.sh cd $cdir/wwwroot ln -s $cdir/pkgs/bricks/dist $dir/wwwroot/bricks for m in apppublic sqlor ahserver bricks-for-python xls2ddl checklang do echo "install $m module..." cd $cdir/pkgs git clone https://git.opencomputing.cn/yumoqing/$m cd $m $cdir/py3/bin/pip install . done do echo "install $m module..." cd $cdir/pkgs if [ ! -d "$cdir/pkgs/$m" ];then git clone https://git.opencomputing.cn/yumoqing/$m cd $cdir/pkgs/$m if [ -d $cdir/pkgs/$m/models ];then cd $cdir/pkgs/$m/models xls2ddl mysql . > mysql.ddl.sql mysql -h db -utest -ptest123 sage < mysql.ddl.sql fi fi cd $cdir/pkgs/$m $cdir/py3/bin/pip install . if [ -d $cdir/pkgs/$m/json ];then cd $cdir/pkgs/$m/json ./build.sh fi if [ -d $cdir/pkgs/$m/data ]; then cd $cdir/pkgs/$m/data dbloader $cdir sage data.xlsx fi rm $cdir/wwwroot/$m ln -s $cdir/pkgs/$m/wwwroot $cdir/wwwroot/$m done mkdir $cdir/logs cd $cdir cat > $cdir/sage.service < $cdir/start.sh < $cdir/stop.sh </dev/null) if ! echo "$cc"|grep -Fq "$new_cron"; then (echo "$cc";echo "$new_cron") | crontab - else echo "任务已存在,未重复添加。" fi # 每日 8:00 抓取外汇牌价 forex_cron="0 8 * * * curl -s http://localhost:9180/accounting/api/fetch_forex_rates.dspy" if ! echo "$cc"|grep -Fq "fetch_forex_rates"; then (echo "$cc";echo "$forex_cron") | crontab - else echo "汇率任务已存在,未重复添加。" fi # sage_datamart ETL crontab cc=$(crontab -l 2>/dev/null) # 每5分钟增量同步 llmusage → dm_model_call_fact dm_sync_cron="*/5 * * * * curl -s http://localhost:9180/sage_datamart/cron/etl_sync.dspy" if ! echo "$cc"|grep -Fq "etl_sync"; then (echo "$cc";echo "$dm_sync_cron") | crontab - cc=$(crontab -l 2>/dev/null) else echo "datamart sync任务已存在,未重复添加。" fi # 每小时聚合 dm_model_perf_daily dm_agg_cron="15 * * * * curl -s http://localhost:9180/sage_datamart/cron/etl_aggregate.dspy" if ! echo "$cc"|grep -Fq "etl_aggregate"; then (echo "$cc";echo "$dm_agg_cron") | crontab - cc=$(crontab -l 2>/dev/null) else echo "datamart aggregate任务已存在,未重复添加。" fi # 每天 02:00 聚合供应商性价比 dm_prov_cron="0 2 * * * curl -s http://localhost:9180/sage_datamart/cron/etl_provider_cost.dspy" if ! echo "$cc"|grep -Fq "etl_provider_cost"; then (echo "$cc";echo "$dm_prov_cron") | crontab - else echo "datamart provider_cost任务已存在,未重复添加。" fi