liujia 发布的文章

在无GUI环境下使用 python + selenium + headless chrome

感谢昵昵。

环境:Debian 9

过程:

1.python -v # 查看默认的python版本,本例是 python2.7
python-selenium-webdriver-headless-1.png

2.pip install -U selenium # 安装 selenium
python-selenium-webdriver-headless-2.png

3.apt install xvfb # 如需运行firefox,需安装 xvfb
python-selenium-webdriver-headless-3.png

4.pip install PyVirtualDisplay # 如需运行firefox,还需安装 PyVirtualDisplay
python-selenium-webdriver-headless-4.png

5.wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - # 添加谷歌的安装源key

6.echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | tee /etc/apt/sources.list.d/google-chrome.list # 添加谷歌chrome安装源
python-selenium-webdriver-headless-5.png

7.apt updat && apt install google-chrome-stable # 安装 google-chrome-stable
python-selenium-webdriver-headless-6.png

8.mkdir /home/dev && cd /home/dev && wget https://chromedriver.storage.googleapis.com/2.39/chromedriver_linux64.zip # 下载 chromedriver,保存到 /home/dev 目录
python-selenium-webdriver-headless-7.png

9 unzip chromedriver_linux64.zip # 解压

10.vi test.py # 创建测试文件,内容如下,获取本博客首页的标题

from selenium import webdriver
# Option 1 - with ChromeOptions
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox') # required when running as root user. otherwise you would get no sandbox errors. 
driver = webdriver.Chrome(executable_path='/home/dev/chromedriver', chrome_options=chrome_options,
          service_args=['--verbose', '--log-path=/tmp/chromedriver.log'])
# Option 2 - with pyvirtualdisplay
# from pyvirtualdisplay import Display 
#display = Display(visible=0, size=(1024, 768)) 
# display.start() 
#driver = webdriver.Chrome(executable_path='/home/dev/chromedriver', 
#          service_args=['--verbose', '--log-path=/tmp/chromedriver.log'])
# Log path added via service_args to see errors if something goes wrong (always a good idea - many of the errors I encountered were described in the logs)
# And now you can add your website / app testing functionality: 
driver.get('https://liujia.anqun.org') 
print(driver.title)
# driver.click...

python-selenium-webdriver-headless-8.png

11.python test.py # 测试,能显示正确标题
python-selenium-webdriver-headless-9.png

参考:

Linux系统耗用CPU的异常进程处理一例 - 十个随机字符进程名称

一网友说,某主机商禁止了VPS的互联网,因为有异常行为。在top命令下查看,有一个进程占用较多的CPU资源,且强制退出几分钟后又会重新出现。

网上搜索得这篇文章,http://blog.51cto.com/zhuxingye/1735794 ,基本相符。所以实践如下:

1.top 命令,显示有一个 hcvlsajtls 名称的进程,占用了25.2%的CPU
10-names-linux-cpu-0.png

2.crontab -e ,查看任务列表,有一条异常内容,/var/.syslog
10-names-linux-cpu-1.png

3.service --status-all 查看服务列表,有一项和进程同名的异常服务,hcvlsajtls
10-names-linux-cpu-2.png

4./etc/crontab 的内容,每隔三分钟,运行 /etc/cron.hourly/gcc.sh
10-names-linux-cpu-3.png

5./etc/cron.hourly/gcc.sh 的内容,异常文件 /lib/libudev.so
10-names-linux-cpu-4.png

6.rm -f /etc/cron.hourly/gcc.sh && chattr +i /etc/crontab # 删除 /etc/cron.hourly/gcc.sh 文件,且不允许修改 /etc/crontab 文件
10-names-linux-cpu-5.png

7.kill -STOP 5090 # 查找到新异常进程zeckmkmbsr的ID,本例是 5090,用 kill 命令停止它,没有强制退出
10-names-linux-cpu-6.png

8.find / -name '*zeckmkmbsr*' | xargs rm -f # 在整个系统中查找出同名的文件,都删除(好象有点暴力,会不会误删其它文件?)
10-names-linux-cpu-7.png

9.pkill zeckmkmbsr && rm -f /lib/libudev.so # 强制退出异常的进程,且删除异常文件 /lib/libudev.so
10-names-linux-cpu-8.png

10.重启系统后,用top再观察十分钟,没看到10个随机字符的进程了
10-names-linux-cpu-9.png

参考:http://blog.51cto.com/zhuxingye/1735794

为magento2站点更换访问网址(域名)

感谢瓜哥。

环境:宝塔nginx,php7.0,mysql5.7,magento2

过程:

1.登录到宝塔控制面板,在数据库管理列表里,选择magento2站点使用的数据库,点击“管理”
magento-change-url-01.png

2.在 core_config_data 数据表,找到 web/unsecure/base_urlweb/secure/base_url
magento-change-url-03.png

3.用新网址(域名)替换旧的
magento-change-url-02.png

4.之后,在站点文件目录中,删除或改名原 var/cache 目录,清除缓存
magento-change-url-04.png

5.用新网址登录到magento2后台,在系统,缓存管理页面中,更新所有相应的缓存

也可以通过magento的命令行来修改,如:
php bin/magento setup:store-config:set --base-url="http://szt.anqun.org/"
php bin/magento setup:store-config:set --base-url-secure="https://szt.anqun.org/"

参考:

“吉祥百得”四门衣柜(#616)安装图解

老姐订了个衣柜,说方便收纳冬天的棉被等。是厂家销售商从佛山发货,(添辉)物流到和平点,每件收25元。一个衣柜打包成四件,物流成本100元。从本地物流点(珊瑚)到家楼下,自行叫三轮摩托,或本地物流点帮叫摩托。

没见到实物前,我以为是打包是小件小件,如条晾篙,自己方便背上楼的,所以没叫搬运上楼的师傅。三轮摩托运到楼下卸货时,我傻了眼,好重,每件都重。

  • 品名:吉祥百得 - Lucky Better
  • 型号:四门衣柜 - #616
  • 规格:约 1.7米 x 0.6米 x 2米,开合门,非推拉门

图1:四件,背上楼,挺累的
yi-gui-1.jpg

图2:拆包装箱,这个箱是装着底板、顶板,层板和五金件
yi-gui-2.jpg

图3:五金件,门铰,螺丝等
yi-gui-3.jpg

图4:先立中间板,之后右下侧板,右层板,再右侧板组好。如果没人帮扶,可用凳子协助固定一下
yi-gui-4.jpg

图5:左侧板和左层板组好。如果一个人,可用头顶着左层板慢慢合上
yi-gui-5.jpg

图6:装背板
yi-gui-6.jpg

图7:背板装好,用四个“平码件”打螺丝固定
yi-gui-7.jpg

图8:左、右侧板和背板安装好
yi-gui-8.jpg

图9:找人帮忙,俩人扛着,放上顶板。至此,前边工序,多数是用锁扣和木条固定,锁扣是箭头向着连接方面,放到开好的圆洞里,然后将箭头顺时拧180度锁上固定
yi-gui-9.jpg

图10:装好衣柜门。我是左侧门和右侧门先安装,然后估算着门板之间的空隙来打螺丝。没有电动螺丝批,不太好单手使力,因为另一只还要固定着门板
yi-gui-10.jpg

图11:关上衣柜门的样子
yi-gui-11.jpg

图12:厂家的安装示意图
yi-gui-12.jpg

我是装装停停,好几天才完工的。气味不好闻,最好是打开包装箱,先晾上一段时间,没气味时再安装。我以前不咳嗽的,装衣柜半天后就会有点咳,然后停工一、两天又不咳了。

用 xdotool 获取 Linux 桌面元素坐标

Windows下有“按键精灵”软件,可以自动完成一些填表,点击任务。在Linux下,如果需要自动化操作,可能需要先获取到图标或表格输入框的坐标元素。网上有视频,可以通过创建xdotool的脚本来获取到坐标。

操作系统是 ubuntu 18, ubuntu-unity-desktop 桌面

过程:

1.如果当前系统无xdotool命令,可通过 apt install xdotool 安装

2.创建一个可执行的脚本文件xdot.sh,内容如下:

#!/bin/bash

while [ 1 ];
do
xdotool getmouselocation|sed 's/x:\([0-9]\+\)[ \t]y:\([0-9]\+\)[ \t].*/\1;\2/'
done

xdotool-1.png

3.在终端里执行xdot.sh,鼠标移到哪,终端里会显示相应位置的坐标
xdotool-2.jpg

参考: