{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/category/linux/ubuntu/bionic-beaver18-04lts/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/category/linux/ubuntu/bionic-beaver18-04lts/", "feed_url": "https://matoken.org/blog/category/linux/ubuntu/bionic-beaver18-04lts/feed/json/", "language": "ja", "title": "Bionic Beaver(18.04LTS) – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "http://matoken.org/blog/?p=2687", "url": "https://matoken.org/blog/2019/12/14/smbget-password-specification/", "title": "smbget\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u6307\u5b9a", "content_html": "
samba\u306e\u901f\u5ea6\u3092\u6e2c\u308b\u306e\u306bsamba\u3092wget\u306e\u3088\u3046\u306b\u4f7f\u3048\u308b smbget \u3092\u4f7f\u304a\u3046\u3068\u3057\u305f\u306e\u3067\u3059\u304c\u4ee5\u524d\u4f7f\u3048\u3066\u3044\u305f\u6c17\u304c\u3059\u308b -p \u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u7121\u304f\u306a\u3063\u3066\u3044\u307e\u3059\uff0e
$ bash -c \"read -sp \\\"passwd: \\\" passwd; smbget smb://smbhost/share/data -U user -p $passwd -O > /dev/null\"\npasswd: -p: unknown option\n
usage\u3092\u898b\u308b\u3068\u78ba\u304b\u306b\u3042\u308a\u307e\u305b\u3093\uff0e
\n$ smbget --usage\nUsage: smbget [-?aneruRODqv] [-?|--help] [--usage] [-w|--workgroup=STRING] [-U|--user=STRING] [-a|--guest] [-n|--nonprompt] [-d|--debuglevel=INT] [-e|--encrypt]\n [-r|--resume] [-u|--update] [-R|--recursive] [-b|--blocksize=INT] [-o|--outputfile=STRING] [-O|--stdout] [-D|--dots] [-q|--quiet] [-v|--verbose]\n [-f|--rcfile=STRING]\n
-p\u3092\u7121\u304f\u305b\u3070\u30d7\u30ed\u30f3\u30d7\u30c8\u304c\u51fa\u3066\u304d\u307e\u3059\u304c\u6bce\u56de\u5165\u529b\u3059\u308b\u306e\u306f\u9762\u5012\u306a\u306e\u3067\u3069\u3046\u306b\u304b\u51fa\u6765\u306a\u3044\u304b\u306a\u3068man\u3092\u898b\u3066\u307f\u307e\u3059\uff0e
\n-U, --user=username[%password]\n Username (and password) to use\n
-U \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u4e00\u7dd2\u306b\u66f8\u3051\u308b\u3088\u3046\u3067\u3059\uff0e\u30c7\u30df\u30ea\u30bf\u306f\u8981\u3089\u306a\u3044\u3088\u3046\uff0e
$ bash -c \"read -sp \\\"passwd: \\\" passwd; smbget smb://smbhost/share/data -U user$passwd -O > /dev/null\"\n
\u30c7\u30df\u30ea\u30bf\u306b : \u3092\u6307\u5b9a\u3057\u3066\u3082\u52d5\u304d\u307e\u3057\u305f\uff0e
$ bash -c \"read -sp \\\"passwd: \\\" passwd; smbget smb://smbhost/share/data -U user:$passwd -O > /dev/null\"\n
\u4ed6\u306b\u3082SMB URL\u306b\u3082\u66f8\u3051\u308b\u3088\u3046\u3067\u3059\uff0e
\nSMB URLS\n SMB URL's should be specified in the following format:\n\n smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]]\n
\u305f\u3060\u3057\uff0c\u3053\u306e\u66f8\u304d\u65b9\u3060\u3068SMB URL\u304c\u74b0\u5883\u5909\u6570\u304c\u5c55\u958b\u3055\u308c\u3066STDOUT\u306b\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u96a0\u3057\u305f\u3044\u5834\u5408\u306f\u4f7f\u3048\u307e\u305b\u3093\uff0e
\n$ bash -c \"read -sp \\\"passwd: \\\" passwd; smbget smb://user:$passwd@smbhost/share/data -O > /dev/null\"\nsmb://user:password@smbhost/share/data(100.00%) at 130.69MB/s ETA: 00:00:0008\nDownloaded 2.17GB in 17 seconds\n
\u305d\u308c\u3092\u8a00\u3046\u3068 -U \u306e\u5834\u5408\u3082\u30d7\u30ed\u30bb\u30b9\u306b\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u8868\u793a\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u3042\u307e\u308a\u3088\u308d\u3057\u304f\u306a\u3044\u3067\u3059\u306d\uff0e\u3066\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a\u3053\u3093\u306a\u611f\u3058\u306a\u3089\u3044\u3044\u304b\u306a?
$ bash -c \"read -sp \\\"passwd: \\\" passwd; echo $passwd | smbget smb://smbhost/share/data -U user -O > /dev/null\"\n
\u3053\u306e\u3068\u304d\u306e\u30d7\u30ed\u30bb\u30b9
\n$ ps -ef|grep smbget\nmk 12626 14620 0 22:38 pts/6 00:00:00 bash -c read -sp \"passwd: \" passwd; echo $passwd | smbget smb://smbhost/share/data -U user -O > /dev/null\nmk 13263 12626 49 22:39 pts/6 00:00:00 smbget smb://smbhost/share/data -U user -O\n
\u3042\u308c?\u7d50\u5c40\u6700\u521d\u306b\u623b\u3063\u3066\u2026\u2026\uff0e
\n\u901f\u5ea6\u3092\u6e2c\u308a\u305f\u3044\u3051\u30692\u56de\u76ee\u4ee5\u964d\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u30af\u30ea\u30a2\u3057\u3066\u6e2c\u308b\uff0e
\n\u4ee5\u4e0b\u306flocalhost\u3067\u8a66\u3057\u3066\u308b\u306e\u3067\u5dee\u304c\u51fa\u3066\u3044\u308b\u304c\uff0c\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u7d4c\u7531\u3060\u3068\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304c\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306b\u306a\u308a\u5dee\u304c\u51fa\u306a\u304b\u3063\u305f\uff0e\u3067\u3082\u4e00\u5fdc\u3084\u3063\u3066\u304a\u304f\uff0e
smb://smbhost/share/data(100.00%) at 28.12MB/s ETA: 00:00:00434\nDownloaded 2.17GB in 79 seconds\n
smb://smbhost/share/data(100.00%) at 130.69MB/s ETA: 00:00:0008\nDownloaded 2.17GB in 17 seconds\n
$ sudo sh -c \"sync; echo 3 > /proc/sys/vm/drop_caches\"\n
smb://smbhost/share/data(100.00%) at 27.43MB/s ETA: 00:00:0044\nDownloaded 2.17GB in 81 seconds\n
\u203b/proc/sys/vm/drop_caches \u306b\u3064\u3044\u3066\u306fKernel Documents\u306e admin-guide/sysctl/vm.rst.gz \u3042\u305f\u308a\u3092\u53c2\u7167\u306e\u3053\u3068\uff0e
\n\n\n\n\n
$ zgrep ^drop_caches -A42 /usr/share/doc/linux-doc-5.3/Documentation/admin-guide/sysctl/vm.rst.gz
$ dpkg-query -W samba smbclient bash\nbash 4.4.18-2ubuntu1.2\nsamba 2:4.7.6+dfsg~ubuntu-0ubuntu2.14\nsmbclient 2:4.7.6+dfsg~ubuntu-0ubuntu2.14\n$ lsb_release -dr\nDescription: Ubuntu 18.04.3 LTS\nRelease: 18.04\n$ uname -rvm\n4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64\n
$ dpkg-query -W samba smbclient bash\nbash 5.0-5\nsamba 2:4.11.1+dfsg-3\nsmbclient 2:4.11.1+dfsg-3\n$ lsb_release -dr\nDescription: Debian GNU/Linux bullseye/sid\nRelease: unstable\n$ uname -rvm\n5.3.0-3-amd64 #1 SMP Debian 5.3.15-1 (2019-12-07) x86_64\n
Nextcloud\u306e\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u65e2\u5b9a\u5024\u3067\u306fNextcloud\u306e\u3059\u3050\u4e0b\u306e data \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u306a\u308a\u307e\u3059\uff0e\u3057\u304b\u3057\u3053\u3053\u306f\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30eb\u30fc\u30c8\u4ee5\u4e0b\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u8a2d\u5b9a\u3092\u30df\u30b9\u3059\u308b\u3068\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u4e00\u822c\u516c\u958b\u3055\u308c\u3066\u3057\u307e\u3046\u53ef\u80fd\u6027\u304c\u3042\u308a\u5c11\u3057\u6016\u3044\u3067\u3059\uff0e
\n\u305d\u3053\u3067Nextcloud\u5c0e\u5165\u6642\u306b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e config/config.php \u3067 datadirectory \u306b\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30eb\u30fc\u30c8\u306e\u5916\u306bNextcloud\u30c7\u30fc\u30bf\u3092\u8a2d\u5b9a\u3057\u307e\u3059\uff0e
\u4eca\u56de\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30eb\u30fc\u30c8\u5185\u306e\u307e\u307e\u904b\u7528\u3055\u308c\u3066\u3044\u308bNextcloud\u304c\u3042\u3063\u305f\u306e\u3067\u305d\u308c\u3092\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30eb\u30fc\u30c8\u5916\u306b\u79fb\u52d5\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\u30c7\u30a3\u30b9\u30af\u3092\u5897\u8a2d\u3057\u3066\u305d\u3061\u3089\u306b\u30c7\u30fc\u30bf\u3092\u79fb\u3059\u306a\u3069\u306e\u969b\u306b\u3082\u540c\u3058\u624b\u9806\u3067\u30c7\u30fc\u30bf\u79fb\u884c\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\uff0e
\u4eca\u56de\u306e\u4f8b\u3067\u306e\u30d1\u30b9\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3059\uff0e
\n| \n Important \n | \n\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u79fb\u52d5\u306f\u516c\u5f0f\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\uff0e | \n
\u540c\u4e00\u306e\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u9593\u3067\u3042\u308c\u3070 mv command\u3067\u4e00\u77ac\u3067\u3059\u304c\uff0c\u4eca\u56de\u306f\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u8de8\u3044\u3067\u3044\u308b\u306e\u3067\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\uff0e
\n\u30c0\u30a6\u30f3\u30bf\u30a4\u30e0\u3092\u77ed\u304f\u3057\u305f\u3044\u306e\u3067Nextcloud\u52d5\u4f5c\u72b6\u614b\u3067\u4e00\u5ea6\u30c7\u30fc\u30bf\u3092\u30b3\u30d4\u30fc\u3057\u3066\u305d\u306e\u5f8crsync\u3067\u5dee\u5206\u306e\u307f\u30b3\u30d4\u30fc\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\uff0e
$ sudo cp -a /var/www/nextcloud/data /var/www/nextcloud/\n
1\u5ea6\u76ee\u306e\u30c7\u30fc\u30bf\u30b3\u30d4\u30fc\u306b\u6642\u9593\u304c\u304b\u304b\u3063\u305f\u306e\u3067rsync\u3067\u540c\u671f
\n$ sudo rsync -avc /var/www/nextcloud/data /var/www/nextcloud/\n
\u6b21\u306e\u624b\u9806\u3067\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u30e2\u30fc\u30c9\u306b\u79fb\u884c\u3059\u308b\u306e\u3067\u4e0d\u8981\u3060\u3068\u601d\u3046\u3051\u3069\u5ff5\u306e\u70ba\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30b8\u30e7\u30d6\u3092crontab\u3067\u8a2d\u5b9a\u3057\u3066\u3044\u308b\u306e\u3092\u505c\u6b62(\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8)\u3057\u3066\u304a\u304f\uff0e(Webcron\u306e\u5834\u5408\u3082\u6b62\u3081\u305f\u307b\u3046\u304c\u3044\u3044\u304b\u3082\uff0eAJAX\u306e\u5834\u5408\u306f\u6050\u3089\u304f\u4e0d\u8981)
\n$ sudo -u www-data crontab -e\n
\u3053\u3053\u304b\u3089Nextcloud\u306f\u5229\u7528\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\uff0e
\n$ sudo -u www-data php ./occ maintenance:mode --on\n
-c \u30aa\u30d7\u30b7\u30e7\u30f3\u3082\u4ed8\u3051\u305f\u307b\u3046\u304c\u3044\u3044\u3051\u3069\u30c7\u30fc\u30bf\u304c\u5927\u304d\u3044\u3068\u6642\u9593\u304c\u304b\u304b\u308b\u306e\u3067\u4eca\u56de\u306f\u306a\u3057\u3067\u3042\u3068\u3067\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3059\u308b\uff0e
$ sudo rsync -av /var/www/nextcloud/data /var/www/nextcloud/\n
Nextclud\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u60c5\u5831\u3092\u66f8\u304d\u63db\u3048\u307e\u3059\uff0e\u66f8\u304d\u63db\u3048\u524d\u306b\u5ff5\u306e\u70ba\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3082\u53d6\u3063\u3066\u304a\u304d\u307e\u3059\uff0e
\n$ sh -c \"umask 266 ; mysqldump -uroot -p --opt --all-databases --events | xz > mysqlbackup-`date +\\%F_\\%T_\\%s_$`.sql.xz\"\n
$ mysql -unextcloud -p\nmysql> use nextcloud;\nmysql> update oc_storages set id='local::/var/data/nextcloud/data/' where id='local::/var/www/nextcloud/data/';\nmysql> quit;\n
Nextcloud\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e config/config.php \u306e\u4e2d\u306e datadirectory \u3092\u65b0\u3057\u3044\u30d1\u30b9\u306b\u66f8\u304d\u63db\u3048\u307e\u3059\uff0e
'datadirectory' => '/var/data/nextcloud/data',\n
$ sudo -u www-data php ./occ maintenance:mode --off\n
Nextcloud\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u95b2\u89a7\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\uff0e
\n\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30b8\u30e7\u30d6\u3092crontab\u3067\u518d\u8a2d\u5b9a
\n$ sudo -u www-data crontab -e\n
\u3057\u3070\u3089\u304f\u904b\u7528\u3057\u3066\u554f\u984c\u306a\u3044\u3088\u3046\u306a\u3089\u65e7\u30c7\u30fc\u30bf\u3092\u524a\u9664\u3059\u308b\uff0e
\n$ sudo rm -rf /var/www/nextcloud/data\n
\u751f\u30c7\u30a3\u30b9\u30af\u306a\u3093\u304b\u3060\u3068 secure-delete \u3068\u304b\u4f7f\u3046\u3068\u5c11\u3057\u5b89\u5fc3\uff0e\u3067\u3082\u78ba\u5b9f\u3058\u3083\u306a\u3044\u3057\u6642\u9593\u304b\u304b\u308b\u306e\u3067\u6697\u53f7\u5316fs\u3092\u63a8\u5968\uff0e
$ sudo nice -20 ionice -c1 -n0 srm -r /var/www/nextcloud/data\n
$ sudo -u www-data php ./occ -V\nNextcloud 17.0.1\n$ dpkg-query -W php7.2-common mysql-server\nmysql-server 5.7.28-0ubuntu0.18.04.4\nphp7.2-common 7.2.24-0ubuntu0.18.04.1\n$ lsb_release -dr\nDescription: Ubuntu 18.04.3 LTS\nRelease: 18.04\n$ uname -m\nx86_64\n
Nextcloud 15.0.7\u304b\u3089Nextcloud 16.0.6\u3078\u306e\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3092\u884c\u304a\u3046\u3068\u3057\u305f\u3068\u3053\u308d\uff0c\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u753b\u9762\u3067\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u3066\u5148\u306b\u52e7\u3081\u307e\u305b\u3093\uff0e
\nCheck for expected files\nThe following extra files have been found:\n.rnd\n
Nextcloud \u4ee5\u4e0b\u3092\u78ba\u8a8d\u3059\u308b\u30683\u3064\u306e .rnd \u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\uff0e
$ cd /export/data/var/nextcloud-data\n$ find ./ -name .rnd -ls\n13495506336 0 drwxr-xr-x 3 www-data www-data 38 Jan 31 2018 ./data/matoken/files_encryption/keys/files/tmp/pizero/home/pi/.rnd\n15757999341 12 -rw-r--r-- 1 www-data www-data 9656 Jan 31 2018 ./data/matoken/files/tmp/pizero/home/pi/.rnd\n11866753713 4 -rw------- 1 www-data www-data 1024 Nov 25 13:19 ./.rnd\n
\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u898b\u308b\u3068\uff0cNextcloud \u76f4\u4e0b\u306e .rnd \u30d5\u30a1\u30a4\u30eb\u304c\u60aa\u3055\u3092\u3057\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3053\u308c\u3092\u9000\u907f\u3057\u307e\u3059\uff0e
$ sudo mv ./.rnd ~/tmp\n
\u3053\u306e\u5f8c\u3082\u3046\u4e00\u5ea6\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3092\u8a66\u307f\u308b\u3068\u3046\u307e\u304f\u884c\u304d\u307e\u3057\u305f\uff0e
\n\n\n\n\nThis behavior continues up to version 15.0.7.
\n
\u3068\u306e\u3053\u3068\u3067\u304e\u308a\u304e\u308a\u5f15\u3063\u304b\u304b\u3063\u305f\u3088\u3046\u3067\u3059
$ sudo -u www-data php ./occ -V\nNextcloud 16.0.6\n$ dpkg-query -W php7.2-common mysql-server\nmysql-server 5.7.28-0ubuntu0.18.04.4\nphp7.2-common 7.2.24-0ubuntu0.18.04.1\n$ lsb_release -dr\nDescription: Ubuntu 18.04.3 LTS\nRelease: 18.04\n$ uname -m\nx86_64\n
Nextcloud\u3092\u3044\u3058\u3063\u3066\u3044\u305f\u3089\u30a8\u30e9\u30fc\u753b\u9762\u306b><
\n\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u30ea\u30af\u30a8\u30b9\u30c8ID\u3067\u30ed\u30b0\u3092\u691c\u7d22\u3057\u3066jq\u3067\u5c55\u958b\u3057\u307e\u3059\uff0e
\n$ sudo grep 'iFqSO6b3lcl9qAXbLJXt' nextcloud.log | jq .|lv\n
\u3053\u306e\u8fba\u308a\u304c\u30a8\u30e9\u30fc\u306e\u3088\u3046\uff0e
\nfiles_reader \u30a2\u30d7\u30ea\u306b\u554f\u984c\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0e
\"message\": {\n \"Exception\": \"Error\",\n \"Message\": \"Class 'OCP\\\\Config' not found\",\n \"Code\": 0,\n \"Trace\": [\n {\n \"file\": \"/var/www/files.matoken.org/apps/files_reader/lib/Hooks.php\",\n \"line\": 41,\n \"function\": \"get\",\n \"class\": \"OCA\\\\Files_Reader\\\\Config\",\n \"type\": \"::\",\n \"args\": [\n \"epub_enable\",\n \"true\"\n ]\n },\n {\n \"file\": \"/var/www/files.matoken.org/lib/private/legacy/hook.php\",\n \"line\": 106,\n \"function\": \"announce_settings\",\n \"class\": \"OCA\\\\Files_Reader\\\\Hooks\",\n \"type\": \"::\",\n\u3068\u308a\u3042\u3048\u305aocc\u30b3\u30de\u30f3\u30c9\u3067`files_reader` \u3092\u7121\u52b9\u306b\u3057\u3066\u30a8\u30e9\u30fc\u306f\u89e3\u6d88\u3055\u308c\u307e\u3057\u305f\uff0e
\n$ php ./occ app:disable files_reader\nfiles_reader disabled\n
\u4eca\u56de\u30a8\u30e9\u30fc\u306b\u306a\u3063\u305fEbook reader(files_reader)\u306f\u30a2\u30d7\u30ea\u30b9\u30c8\u30a2\u5185\u3067\u78ba\u8a8d\u3059\u308b\u3068Nextcloud 9~13 \u3067\u3057\u305f\uff0e
\n\u3057\u304b\u3057\uff0cNextcloud\u306e\u30a2\u30d7\u30ea\u753b\u9762\u3067\u306f\u300c\u672a\u30c6\u30b9\u30c8\u306e\u30a2\u30d7\u30ea\u3092\u6709\u52b9\u306b\u3059\u308b\u300d\u3068\u3044\u3063\u305f\u8b66\u544a\u304c\u306a\u3044\u306e\u3067\u5c0e\u5165\u3057\u3066\u3057\u307e\u3046\u2026\u2026\uff0e
\nIssue\u3084PR\u306f\u4e0a\u304c\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e
\n$ php ./occ app:list|grep files_reader\n - files_reader\n$ php ./occ status|grep version:\n - version: 16.0.5.1\n$ dpkg-query -W php\nphp 2:7.3+69\n$ lsb_release -dr\nDescription: Debian GNU/Linux 10 (buster)\nRelease: 10\n$ uname -m\nx86_64\n
\u7cbe\u5ea6\u306e\u60aa\u3044\u30bf\u30c3\u30c1\u30d1\u30c3\u30c9\u3092\u4f7f\u3063\u3066\u3044\u308b\u30682\u672c\u6307\u3067\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u305f\u3064\u3082\u308a\u304c\u62e1\u5927\uff0c\u7e2e\u5c0f\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u3053\u3068\u304c\u3042\u308a\u307e\u3059\uff0e\u30b9\u30af\u30ed\u30fc\u30eb\u306e\u3064\u3082\u308a\u306a\u306e\u3067\u64cd\u4f5c\u91cf\u3082\u591a\u304f\u4e00\u6c17\u306b\u62e1\u5927\u3055\u308c\u305f\u308a\u7e2e\u5c0f\u3055\u308c\u305f\u308a\u2026\u2026\uff0e
\nFirefox \u3067\u3053\u306e\u6a5f\u80fd\u3092\u7121\u52b9\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\u4ee5\u4e0b\u306e\u624b\u9806\u3067\u306f\u30dd\u30a4\u30f3\u30c6\u30a3\u30f3\u30b0\u30c7\u30d0\u30a4\u30b9\u3067\u306e\u30ba\u30fc\u30e0\u6a5f\u80fd\u306f\u7121\u52b9\u5316\u3055\u308c\u307e\u3059\u304c\uff0c\u30ad\u30fc\u30dc\u30fc\u30c9\u30fb\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3067\u306e\u30ba\u30fc\u30e0\u306f\u5229\u7528\u3067\u304d\u307e\u3059\uff0e
Firefox \u306e\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306b about:config \u3092\u5165\u529b\u3057\u3066\u958b\u304d\uff0c zoom.maxPercent, zoom.minPercent \u3092\u305d\u308c\u305e\u308c 100 \u306b\u66f8\u304d\u63db\u3048\u308b\uff0e
\n\u3053\u306e\u624b\u9806\u306e\u5834\u5408\u5373\u6642\u53cd\u6620\u3055\u308c\u308b\uff0e

Firefox \u306e\u5bfe\u8c61\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u3042\u308b\u30c7\u30a3\u30af\u30c8\u30ea\u306b user.js \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u8d77\u52d5\u3059\u308b\u3068\u53cd\u6620\u3055\u308c\u308b\uff0e
\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u3042\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f ~/.mozilla/firefox/profiles.ini \u3092\u78ba\u8a8d\u3059\u308b\uff0e
\n\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f\uff0c~/.mozilla/firefox/4dx27pta.default/ \u306b\u306a\u308b\uff0e
[Install4F96D1932A9F858E]\r\nDefault=4dx27pta.default\r\n\r\n[Profile0]\r\nName=default\r\nIsRelative=1\r\nPath=4dx27pta.default\r\nDefault=1\r\n\r\n[General]\r\nStartWithLastProfile=1\r\nVersion=2\n
user.js \u3092\u4ee5\u4e0b\u306e\u5185\u5bb9\u3067\u4f5c\u6210\u3059\u308b\uff0e\u65e2\u306b\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u8ffd\u8a18\u3059\u308b\uff0e
user_pref(\"zoom.maxPercent\", 100);\r\nuser_pref(\"zoom.minPercent\", 100);\n
$ dpkg-query -W firefox\r\nfirefox 68.0+build3-0ubuntu0.18.04.1\r\n$ hostnamectl | egrep 'Operating System|Architecture'\r\n Operating System: Ubuntu 18.04.2 LTS\r\n Architecture: arm64\n
apt-cacher-ng \u3067\u5404\u7a2e\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff0chttps \u306e\u5834\u5408\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e
\n$ sudo apt update\r\nErr:1 https://updates.signal.org/desktop/apt xenial InRelease Reading from proxy failed - read (115: Operation now in progress) [IP: 192.168.1.102 3142] Err:2 https://deb.opera.com/opera-stable stable InRelease\r\n Reading from proxy failed - read (115: Operation now in progress) [IP: 192.168.1.102 3142]\r\n :\r\nW: Failed to fetch https://deb.opera.com/opera-stable/dists/stable/InRelease Reading from proxy failed - read (115: Operation now in progress) [IP: 192.168.1.102 3142]\r\nW: Failed to fetch https://updates.signal.org/desktop/apt/dists/xenial/InRelease Reading from proxy failed - read (115: Operation now in progress) [IP: 192.168.1.102 3142]\r\nW: Some index files failed to download. They have been ignored, or old ones used instead.\n
Debian wiki \u306b\u89e3\u6c7a\u65b9\u6cd5\u304c\u8f09\u3063\u3066\u3044\u307e\u3057\u305f\uff0ehttps \u306e\u5834\u5408\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u305b\u305a\u306b\u76f4\u63a5\u898b\u306b\u884c\u304b\u305b\u308b\u8a2d\u5b9a\u304c\u51fa\u6765\u308b\u3088\u3046\u3067\u3059\uff0e
\n\n\n\n\nHTTPS repositories
\n
\napt-cacher-ng will obviously fail to serve HTTPS repositories. There are many solutions upstream but I have found the simplest solution to be to simply tunnel HTTPS connections directly on the proxy, by putting this in /etc/apt-cacher-ng/acng.conf:\n\n\n\nPassThroughPattern: .*\n\n\nThis is, as far as I can tell, the only way to avoid doing a special configuration on the clients for HTTPS repositories. The downside is that HTTPS content is not cached.
\n
/etc/apt-cacher-ng/acng.conf \u306b PassThroughPattern: .* \u3092\u8a2d\u5b9a\u3057\u3066\u30c7\u30fc\u30e2\u30f3\u3092\u518d\u8d77\u52d5\u3059\u308b\u3053\u3068\u3067\u76f4\u63a5\u30a2\u30af\u30bb\u30b9\u3057\u3066\u30a8\u30e9\u30fc\u3092\u51fa\u3055\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e
\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u306e\u3088\u3046\u306b source.list \u3092\u66f8\u304d\u63db\u3048\u3066https \u3067\u3042\u3063\u3066\u3082\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\u65b9\u6cd5\u3082\u3042\u308b\u3088\u3046\u3067\u3059\u304c\u4eca\u56de\u306f\u306a\u3057\u3067\uff0e
\n$ dpkg-query -W apt-cacher-ng\r\napt-cacher-ng 3.1-1build1\r\n$ hostnamectl | egrep 'Operating System|Architecture'\r\n Operating System: Ubuntu 18.04.2 LTS\r\n Architecture: x86-64\n
$ dpkg-query -W apt\r\napt 1.8.2\r\n$ hostnamectl | egrep 'Operating System|Architecture'\r\n Operating System: Debian GNU/Linux bullseye/sid\r\n Architecture: x86-64\n
\u3061\u3087\u3063\u3068\u8a66\u3057\u305f\u3089\u5c11\u3057\u5d4c\u3063\u305f\u306e\u3067\u30e1\u30e2\u304c\u3066\u3089\uff0e
\n$ go get github.com/takumakanari/cronv/cronv\r\n$ go build -o ./cronv github.com/takumakanari/cronv/cronv\n
$ ./cronv -h\r\nUsage:\r\n Cronv v0.4.1 [OPTIONS]\r\n\r\nApplication Options:\r\n -o, --output= path to .html file to output (default: ./crontab.html)\r\n -d, --duration= duration to visualize in N{suffix} style. e.g.) 1d(day)/1h(hour)/1m(minute) (default: 6h)\r\n --from-date= start date in the format '2006/01/02' to visualize (default: 2019/05/25)\r\n --from-time= start time in the format '15:04' to visualize (default: 02:50)\r\n -t, --title= title/label of output (default: Cron Tasks)\r\n -w, --width= Table width of output (default: 100)\r\n\r\nHelp Options:\r\n -h, --help Show this help message\n$ crontab -l | ./cronv\n
\n\n\n\n2019-06-01 ADD: \u4ee5\u4e0b\u306etab \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u3068\u306a\u308b\u554f\u984c\u306f\u4fee\u6b63\u3055\u308c\u307e\u3057\u305f
\n\n
\u3057\u304b\u3057\uff0cmissing field(s) \u3068\u304b syntax error in year field: \u3068\u304b\u306e\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3046\uff0e
$ printf \"* * * * *\\tcommand\\n\"\r\n* * * * * command\r\n$ printf \"* * * * *\\tcommand\\n\" | ./cronv\r\npanic: Failed to analyze cron '* * * * * command': syntax error in year field: 'command'\r\n\r\ngoroutine 1 [running]:\r\npanic\r\n ../../../src/libgo/go/runtime/panic.go:554\r\nmain.main\r\n /home/mk/go/src/github.com/takumakanari/cronv/cronv/main.go:33\n
\u30bf\u30d6\u533a\u5207\u308a\u3092\u3084\u3081\u3066\u30b9\u30da\u30fc\u30b9\u533a\u5207\u308a\u306b\u3059\u308b\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u306a\u3044
\n$ printf \"* * * * * command\\n\" | ./cronv\r\n[Cron Tasks] 1 tasks.\r\n[Cron Tasks] './crontab.html' generated.\n
\u3068\u3044\u3046\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a\u30bf\u30d6\u3092\u30b9\u30da\u30fc\u30b9\u306b\u5909\u63db\u3059\u308b\u3053\u3068\u306b\u3057\u305f\uff0e
\n$ crontab -l | tr -s '\\t' ' ' | ./cronv\r\n[Cron Tasks] 8 tasks.\r\n[Cron Tasks] './crontab.html' generated.\n
\u4f5c\u6210\u3055\u308c\u305f crontab.html \u3092 w3m \u3067\u2026\u2026\u307b\u3068\u3093\u3069\u8868\u793a\u3055\u308c\u306a\u3044\uff0e

\u3082\u3046\u5c11\u3057\u30ea\u30c3\u30c1\u306a JavaScript \u306e\u52d5\u304f\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u958b\u304f\u3068OK\uff0e
\n\u3053\u308c\u304b\u3089\u306e6\u6642\u9593\u5206\u306e\u69d8\u5b50\u304c\u898b\u3048\u308b\uff0e

-d, --duration option \u3067\u8868\u793a\u3059\u308b\u6642\u9593\u9593\u9694\u304c\u6307\u5b9a\u3067\u304d\u308b\uff0e
\n\u958b\u59cb\u65e5\u6642\u306f\uff0c--fron-date, --from-time option \u3067\u6307\u5b9a\u3067\u304d\u308b\uff0e
\n\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f 2019-05-25 00:00:00 \u304b\u30891\u65e5\u5206\u306e\u8868\u793a\u306b\u306a\u308b\uff0e
$ crontab -l | tr -s '\\t' ' ' | ./cronv -d 1d --from-date=2019/05/25 --from-time=00:00\n

\u3061\u306a\u307f\u306b1\u30f6\u6708\u3082\u8a66\u3057\u305f\u304c\uff0c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u8868\u793a\u3059\u308b\u306e\u306b\u3068\u3066\u3082\u6642\u9593\u304c\u639b\u304b\u3063\u305f\uff0e
\n$ dpkg-query -W cron gccgo-go\r\ncron 3.0pl1-128.1ubuntu1\r\ngccgo-go 2:1.10~4ubuntu1\r\n$ lsb_release -d\r\nDescription: Ubuntu 18.04.2 LTS\r\n$ uname -m\r\nx86_64\n
github.com/settings/keys \u304b\u3089SSH Key\u3068\u3057\u3066\u7a81\u3063\u8fbc\u3093\u3069\u304f\u3068\u4fbf\u5229\u3060\u3057\u3001\u4eca\u306eUbuntu Server\u306f\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3067\u305d\u308c\u3092\u4f7f\u3046\u9805\u76ee\u3059\u3089\u3042\u308b\u306e\u3067
\n\u306a\u308b\u307b\u3069\u4fbf\u5229\u305d\u3046
\n\u8a66\u3057\u3066\u307f\u3088\u3046\u3068 Ubuntu Server 18.04.2 LTS
\n (ubuntu-18.04.2-live-server-amd64.iso) \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
OpenSSH \u3092\u5c0e\u5165\u3059\u308b\u3088\u3046\u306b\u3059\u308b\u3068\uff0cSSH\u9375\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u3067 Github / Launchpad \u304c\u9078\u3079\u307e\u3059\uff0e
\n
\u3053\u3093\u306a\u611f\u3058\u3067\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3057\u305f\uff0e
\n
\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u7d42\u4e86\u3057\u3066 ssh login \u3059\u308b\u3068\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u305f\u9375\u3067 login \u51fa\u6765\u307e\u3057\u305f\uff0e
\n\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u305f\u516c\u958b\u9375\u3092\u78ba\u8a8d\u3059\u308b\u3068\u30b3\u30e1\u30f3\u30c8\u90e8\u5206\u304c\u5c11\u3057\u66f8\u304d\u63db\u308f\u3063\u3066\u3044\u307e\u3059\uff0e
\n$ cat ~/.ssh/authorized_keys\r\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPgwY9aZPxN/YoBBzd7TOcCk7EuGO0E9PuUjCHPtTuHP matoken@github/16598604 # ssh-import-id gh:matoken\r\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEoKnbjj7cVafcAJbYHqUEua1x/81uzoK0LnjgqmR6H8 matoken@github/33364582 # ssh-import-id gh:matoken\n
sshd_config \u3092\u898b\u308b\u3068\u7de8\u96c6\u3067\u306f\u306a\u304f\u672b\u5c3e\u306b\u8ffd\u8a18\u3057\u3066\u308b\u306e\u3067\u3061\u3087\u3063\u3068\u96d1\u3044\u611f\uff0e
\n$ grep PasswordAuthentication /etc/ssh/sshd_config\r\n#PasswordAuthentication yes\r\n# PasswordAuthentication. Depending on your PAM configuration,\r\n# PAM authentication, then enable this but set PasswordAuthentication\r\nPasswordAuthentication no\r\n$ tail -1 /etc/ssh/sshd_config\r\nPasswordAuthentication no\n
\u3061\u306a\u307f\u306b\uff0cGithub \u304b\u3089\u9375\u3092\u5165\u624b\u3059\u308b\u306e\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u884c\u3051\u308b\u3088\u3046\u3067\u3059\uff0e
\n(<USERNAME>\u90e8\u5206\u3092\u8a72\u5f53\u30e6\u30fc\u30b6\u540d\u306b\u4fee\u6b63)
Launchpad \u306f\u3053\u3093\u306a\u611f\u3058\uff0e
\n\u3061\u306a\u307f\u306bLaunchpad \u306f\u672a\u3060ED25519\u5f62\u5f0f\u306b\u306f\u672a\u5bfe\u5fdc\u306a\u3088\u3046\u3067\u3059\uff0e
\n
Bitbucket \u306e\u9375\u3082\u540c\u69d8\u306b https://api.bitbucket.org/2.0/users/<USERNAME>/ssh-keys \u3067\u5165\u624b\u3067\u304d\u305d\u3046\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0c\u672a\u8a8d\u8a3c\u3067\u306f\u99c4\u76ee\u307f\u305f\u3044\u3067\u3059\uff0e
\n$ curl -s https://api.bitbucket.org/2.0/users/matoken/ssh-keys|jq\r\n{\r\n \"type\": \"error\",\r\n \"error\": {\r\n \"message\": \"This API is only accessible with the following authentication types: session, password, apppassword\"\r\n }\r\n}\n$ lsb_release -d\r\nDescription:\tUbuntu 18.04.2 LTS\r\n$ uname -m\r\nx86_64\n
\u3055\u3063\u304d\u307e\u3067\u306f\u52d5\u3044\u3066\u3044\u305f\u306e\u306b\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6(qutebrowser)\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u306b\u8ffd\u5f93\u3059\u308b\u305f\u3081\u306b\u518d\u8d77\u52d5\u3057\u3066\uff0c\u81ea\u5206\u7528 GNU social \u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u753b\u9762\u304c\u771f\u3063\u767d\u3067\u3059><
\n\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u306e\u30a2\u30d7\u30ea\u7d4c\u7531(Twidere)\u3060\u3068\u52d5\u4f5c\u3057\u3066\u3044\u308b\u306e\u3067\u8868\u793a\u5468\u308a\u306e\u554f\u984c\u3067\u3057\u3087\u3046\u304b?
config.php \u306e
\n$config['site']['logfile'] \u306b\u6307\u5b9a\u3057\u3066\u3044\u308b\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3053\u3093\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u3042\u308a\u307e\u3057\u305f\uff0e
2019-03-22 14:35:28 LOG_DEBUG: [gnusocial.matoken.org:29424.bda9531d GET /] action.php - Server error '500' on 'qvitter': Class 'Locale' not found\r\n2019-03-22 14:35:28 LOG_ERR: [gnusocial.matoken.org:29424.bda9531d GET /] Handled serverError (500) but cannot output into desired format (NULL): 'Class \\'Locale\\' not found'\r\n2019-03-22 14:35:28 LOG_ERR: [gnusocial.matoken.org:29424.bda9531d GET /] ServerErrorAction: 500 Class 'Locale' not found\n
\u3053\u306e\u3042\u305f\u308a\u3067\u4f7f\u304a\u3046\u3068\u3057\u3066\u3044\u308b\u3088\u3046
\n$ find plugins/Qvitter -type f -print0 | xargs -0 grep -n Locale\r\nplugins/Qvitter/actions/qvitter.php:341: window.usersLanguageNameInEnglish = <?php print json_encode(Locale::getDisplayLanguage($user_browser_language, 'en')) ?>;\r\nplugins/Qvitter/actions/qvitter.php:462: $languagecodesandnames[$lancode]['english_name'] = Locale::getDisplayName($lancode, 'en');\r\nplugins/Qvitter/actions/qvitter.php:463: $languagecodesandnames[$lancode]['name'] = Locale::getDisplayName($lancode, $lancode);\n
\u3053\u308c\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u304b\u5b58\u5728\u3057\u306a\u3044\u72b6\u614b\u306e\u3088\u3046\u3067\u3059\uff0e
\n\u305d\u308c\u3089\u3057\u3044package \u3092\u63a2\u3057\u3066\uff0c
\n$ apt-cache search ^php international\r\nphp-horde-idna - IDNA backend normalization package\r\nphp-horde-ingo - An email filter rules manager\r\nphp-intl - Internationalisation module for PHP [default]\r\nphp-net-idna2 - PHP Pear module for handling international domain names\r\nphp-symfony-translation - tools to internationalize an application\r\nphp7.2-intl - Internationalisation module for PHP\r\nphpmyadmin - MySQL web administration tool\r\nphp7.0-intl - Internationalisation module for PHP\n
$ apt show php-intl\r\nPackage: php-intl\r\nVersion: 1:7.2+60ubuntu1\r\nPriority: optional\r\nSection: universe/php\r\nSource: php-defaults (60ubuntu1)\r\nOrigin: Ubuntu\r\nMaintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>\r\nOriginal-Maintainer: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>\r\nBugs: https://bugs.launchpad.net/ubuntu/+filebug\r\nInstalled-Size: 12.3 kB\r\nDepends: php-common, php7.2-intl\r\nDownload-Size: 2,012 B\r\nAPT-Sources: http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages\r\nDescription: Internationalisation module for PHP [default]\r\n This package provides a Internationalisation module for PHP.\r\n .\r\n PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used\r\n open source general-purpose scripting language that is especially suited\r\n for web development and can be embedded into HTML.\r\n .\r\n This package is a dependency package, which depends on Ubuntu's default\r\n PHP version (currently 7.2).\n
\u5c0e\u5165\u3059\u308b\u3053\u3068\u3067\u89e3\u6c7a\u3057\u307e\u3057\u305f\uff0e
\nsudo apt-get install php7.2-intl\n
\u6050\u3089\u304f php \u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4e0a\u3052\u305f\u3068\u304d\u306b\u6f0f\u308c\u3066\u3057\u307e\u3044\uff0cAPI \u306a\u3069\u306f\u554f\u984c\u306a\u304f\u4f7f\u3048\u3066\u3044\u305f\u306e\u3067\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3092\u518d\u8d77\u52d5\u3059\u308b\u307e\u3067\u6c17\u3065\u304b\u306a\u304b\u3063\u305f\u611f\u3058\u306e\u3088\u3046\u3067\u3059\uff0e
\n\u3057\u304b\u3057\uff0cGNU social \u306f\u3053\u3046\u3044\u3046\u8b66\u544a\u3092\u3088\u304f\u898b\u304b\u3051\u308b\u306e\u3067\u3069\u3046\u306b\u304b\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3067\u3059\u306d\uff0e\u958b\u767a\u306f\u6ede\u3063\u3066\u3044\u308b\u611f\u3058\u306a\u306e\u3067 Pleroma \u3042\u305f\u308a\u306b\u79fb\u884c\u3059\u308b\u306e\u304c\u3044\u3044\u3093\u3067\u3057\u3087\u3046\u304c\u2026\u2026\uff0e
\nthis will throw an Error in a future version of PHP\n
\u74b0\u5883
\n$ dpkg-query -W php7.2-intl\r\nphp7.2-intl 7.2.15-0ubuntu0.18.04.1\r\n$ w3m -dump https://gnusocial.matoken.org/nodeinfo/2.0|jq .software\r\n{\r\n \"name\": \"gnusocial\",\r\n \"version\": \"1.2.0-beta5\"\r\n}\r\n$ lsb_release -d\r\nDescription: Ubuntu 18.04.2 LTS\r\n$ uname -m\r\nx86_64\n\u4ee5\u524d\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u8a18\u4e8b\u3092\u66f8\u304d\u307e\u3057\u305f\uff0e
\n\u4eca\u3067\u3082\u3053\u306eblog\u306e\u4e2d\u3067\u306f\u30a2\u30af\u30bb\u30b9\u304c\u591a\u304f\uff0c\u6700\u8fd1\u3082\u30c8\u30e9\u30c3\u30af\u30d0\u30c3\u30af\u3092\u3082\u3089\u3044\u307e\u3057\u305f\uff0e
\n\u3053\u306e\u5f53\u6642\u306f arm64 \u306e mozc\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u306a\u304f\u3066\u81ea\u5206\u3067build \u3057\u305f\u3068\u3044\u3046\u8a71\u306a\u306e\u3067\u3059\u304c\uff0c\u73fe\u5728\u306fDebian \u3067\u306f buster(testing), Ubuntu \u3067\u306fartful(17.10) \u4ee5\u964d\u3067\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u5b58\u5728\u3057\u307e\u3059\uff0e
\n\u306a\u306e\u3067\u3053\u306e\u91ce\u826f\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u3046\u3088\u308a\u3082\u516c\u5f0f\u306e\u4e0a\u6d41\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u501f\u308a\u308b\u307b\u3046\u304c\u5927\u62b5\u306e\u5834\u5408\u3044\u3044\u3068\u601d\u3044\u307e\u3059\uff0e
\n\u3068\u3044\u3046\u3053\u3068\u3067\u624b\u9806\u3092\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\uff0e
\u30d1\u30c3\u30b1\u30fc\u30b8\u30d5\u30a1\u30a4\u30eb\u3060\u3051\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30da\u30fc\u30b8\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u53ef\u80fd\u3067\u3059\uff0e
\n\u91ce\u826f\u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u8fd1\u65e5\u4e2d\u306b\u524a\u9664\u3057\u307e\u3059\uff0e
\n$ apt-cache search mozc\r\nmozc-data - Mozc input method - data files\n
buster(testing) \u306emozc \u3092\u501f\u308a\u3066\u304f\u308b\u3053\u3068\u306b\u3059\u308b\uff0e
\n\u300c\u7b2c2\u7ae0 Debian \u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u300d\u306e\u300c2.7.6. unstable \u304b\u3089\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u5171\u306b\u3001testing \u3092\u8ffd\u3044\u304b\u3051\u308b\u300d\u3092\u53c2\u8003\u306b\u8a2d\u5b9a\u3059\u308b
\n/etc/apt/preferences \u3067 buster \u306e\u512a\u5148\u5ea6\u3092\u4e0b\u3052\u308b
Package: *\r\nPin: release n=buster\r\nPin-Priority: 100\n
buster(testing) \u3092 \u8ffd\u52a0 \u8a2d\u5b9adeb http://deb.debian.org/debian buster main\n
\u203bsources.list \u306e\u7de8\u96c6\u306b\u306f apt edit-sources \u3092\u4f7f\u3046\u3068\u6587\u6cd5\u30c1\u30a7\u30c3\u30af\u3092\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u304a\u3059\u3059\u3081
$ sudo apt update\n
$ apt-cache search mozc\r\nmozc-data - Mozc input method - data files\r\nfcitx-dbus-status - Addon for Fcitx to set/get/monitor IM statuses via D-Bus\r\nemacs-mozc - Mozc for Emacs\r\nemacs-mozc-bin - Helper module for emacs-mozc\r\nfcitx-mozc - Mozc engine for fcitx - Client of the Mozc input method\r\nibus-mozc - Mozc engine for IBus - Client of the Mozc input method\r\nmozc-server - Server of the Mozc input method\r\nmozc-utils-gui - GUI utilities of the Mozc input method\r\nuim-mozc - Mozc engine for uim - Client of the Mozc input method\n
$ apt install fcitx-mozc -t buster\n
\u5f8c\u306f\u901a\u5e38\u306e apt update && apt upgrade \u3067 stretch \u3067\u5c0e\u5165\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u306f stretch \u3067\uff0cbuster \u3067\u5c0e\u5165\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u306fbuster \u3067\u66f4\u65b0\u3055\u308c\u308b\u306f\u305a\uff0e
\nDebian\u306e\u624b\u9806\u3068\u540c\u3058\u3067\u3082ok\u3060\u3068\u601d\u3046\u3051\u3069\u5ff5\u306e\u70ba\u4ee5\u4e0b\u306e\u624b\u9806\u3092\u771f\u4f3c\u3057\u3066\u307f\u308b\uff0e
\nmozc \u306f Ubuntu 17.10 artful \u304b\u3089\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u304c\uff0c\u3082\u3046\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u306a\u3044\u306e\u3067Ubuntu 18.04 bionic \u3092\u4f7f\u3046\uff0e
\n\u6a19\u6e96\u306e\u30ea\u30ea\u30fc\u30b9\u3092 xenial \u306b\u8a2d\u5b9a
APT::Default-Release \"xenial\";\n
mozc \u3092pinning\u3059\u308b
\nPackage: *mozc*\r\nPin: release n=xenial\r\nPin-Priority: -10\r\n\r\nPackage: *mozc*\r\nPin: release n=bionic\r\nPin-Priority: 900\n
/etc/apt/sources.list \u306b buster(testing) \u3092 \u8ffd\u52a0 \u8a2d\u5b9a
\ndeb http://ports.ubuntu.com/ bionic main universe\n
\u203bsources.list \u306e\u7de8\u96c6\u306b\u306f apt edit-sources \u3092\u4f7f\u3046\u3068\u6587\u6cd5\u30c1\u30a7\u30c3\u30af\u3092\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u304a\u3059\u3059\u3081
\n\u203bmirror\u306b\u3088\u308a arm64 \u304c\u7f6e\u304b\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u6ce8\u610f
$ sudo apt update\n
$ apt-cache search mozc\r\nmozc-data - Mozc input method - data files\r\nibus-mozc - Mozc engine for IBus - Client of the Mozc input method\r\nmozc-server - Server of the Mozc input method\r\nmozc-utils-gui - GUI utilities of the Mozc input method\r\nemacs-mozc - Mozc for Emacs\r\nemacs-mozc-bin - Helper module for emacs-mozc\r\nfcitx-mozc - Mozc engine for fcitx - Client of the Mozc input method\r\nuim-mozc - Mozc engine for uim - Client of the Mozc input method\n
$ sudo apt install fcitx-mozc -t bionic\n
Arm \u3067\u3082\u52d5\u304f\u304b\u306a?\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n$ sudo apt install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make libssl1.0-dev\n
$ git clone --recursive https://github.com/vysheng/tg.git && cd tg\n
$ ./configure\r\n$ make\n
tgl/crypto/rsa_pem_openssl.c: In function \u2018TGLC_rsa_new\u2019:\r\ntgl/crypto/rsa_pem_openssl.c:41:6: error: dereferencing pointer to incomplete type \u2018RSA {aka struct rsa_st}\u2019\r\n ret->e = unwrap_bn (TGLC_bn_new ());\r\n ^~\r\ntgl/crypto/rsa_pem_openssl.c: In function \u2018TGLC_rsa_n\u2019:\r\ntgl/crypto/rsa_pem_openssl.c:52:1: error: control reaches end of non-void function [-Werror=return-type]\r\n RSA_GETTER(n);\r\n ^~~~~~~~~~\r\ntgl/crypto/rsa_pem_openssl.c: In function \u2018TGLC_rsa_e\u2019:\r\ntgl/crypto/rsa_pem_openssl.c:53:1: error: control reaches end of non-void function [-Werror=return-type]\r\n RSA_GETTER(e);\r\n ^~~~~~~~~~\r\ncc1: all warnings being treated as errors\r\nMakefile.tgl:20: recipe for target 'objs/crypto/rsa_pem_openssl.o' failed\r\nmake: *** [objs/crypto/rsa_pem_openssl.o] Error 1\nlibssl-dev(1.1.1)\u3067\u306f\u52d5\u4f5c\u3057\u306a\u3044\u306e\u3067libssl1.0-dev\u306b\u5165\u308c\u66ff\u3048\u308b\uff0e sudo apt install libssl1.0-dev
gcc -I. -I. -I./tgl -w -I/usr/local/include -I/usr/include -I/usr/include -I/usr/include/lua5.2 -DHAVE_CONFIG_H -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-deprecated-declarations -fno-strict-aliasing -fno-omit-frame-pointer -ggdb -Wno-unused-parameter -fPIC -iquote ./tgl/tl-parser -c -MP -MD -MF dep/tl-parser.d -MQ objs/tl-parser.o -o objs/tl-parser.o tgl/tl-parser/tl-parser.c\r\ntgl/tl-parser/tl-parser.c:37:10: fatal error: zlib.h: \u305d\u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3042\u308a\u307e\u305b\u3093\r\n #include <zlib.h>\r\n ^~~~~~~~\r\ncompilation terminated.\r\nmake: *** [Makefile.tl-parser:4: objs/tl-parser.o] \u30a8\u30e9\u30fc 1\n
zlib1g-dev \u3092\u5c0e\u5165\u3059\u308b\uff0e sudo apt install zlib1g-dev
$ bin/telegram-cli\r\nTelegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman\r\nTelegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.\r\nThis is free software, and you are welcome to redistribute it\r\nunder certain conditions; type `show_license' for details.\r\nTelegram-cli uses libtgl version 2.1.0\r\nTelegram-cli includes software developed by the OpenSSL Project\r\nfor use in the OpenSSL Toolkit. (http://www.openssl.org/)\r\nI: config dir=[/home/pi/.telegram-cli]\r\n> telegram-cli: tgl/mtproto-utils.c:101: BN2ull: Assertion `0' failed.\r\nSIGNAL received\n
\u4ee5\u4e0b\u306e\u4fee\u6b63\u3092\u884c\u3044\uff0c make clean \u3057\u3066 build \u3057\u306a\u304a\u3059\uff0e
$ diff -ud tgl/mtproto-utils.c.org tgl/mtproto-utils.c\r\n--- tgl/mtproto-utils.c.org 2018-09-19 21:01:44.878560077 +0900\r\n+++ tgl/mtproto-utils.c 2018-09-19 20:59:55.778295550 +0900\r\n@@ -98,13 +98,13 @@\r\n if (sizeof (unsigned long) == 8) {\r\n\t return TGLC_bn_get_word (b);\r\n } else if (sizeof (unsigned long long) == 8) {\r\n- assert (0); // As long as nobody ever uses this code, assume it is broken.\r\n+ assert (0); As long as nobody ever uses this code, assume it is broken.\r\n\t unsigned long long tmp;\r\n\t /* Here be dragons, but it should be okay due to be64toh */\r\n\t TGLC_bn_bn2bin (b, (unsigned char *) &tmp);\r\n\t return be64toh (tmp);\r\n } else {\r\n- assert (0);\r\n+// assert (0);\r\n }\r\n }\n$ make clean\r\n$ ./configure\r\n$ make\n
$ bin/telegram-cli\r\nTelegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman\r\nTelegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.\r\nThis is free software, and you are welcome to redistribute it\r\nunder certain conditions; type `show_license' for details.\r\nTelegram-cli uses libtgl version 2.1.0\r\nTelegram-cli includes software developed by the OpenSSL Project\r\nfor use in the OpenSSL Toolkit. (http://www.openssl.org/)\r\nI: config dir=[/home/mk/.telegram-cli]\r\n[/home/mk/.telegram-cli] created\r\n[/home/mk/.telegram-cli/downloads] created\r\nphone number: +81-9000000000\r\ncode ('CALL' for phone code): 16802\r\nUser matoken updated flags\r\nUser matoken online (was online [2018/09/18 23:55:32])\r\nUser matoken offline (was online [2018/09/18 23:50:35])\nmatoken,\r\n\r\nWe detected a login into your account from a new device on 19/09/2018 at 12:28:55 UTC.\r\n\r\nDevice: Unix Console\r\nLocation: Shizuoka, Japan (IP = 180.131.110.140)\r\n\r\nIf this wasn't you, you can go to Settings - Privacy and Security - Sessions and terminate that session.\r\n\r\nIf you think that somebody logged in to your account against your will, you can enable two-step verification in Privacy and Security settings.\r\n\r\nSincerely,\r\nThe Telegram Team\n
> msg @matoken hello\n
$ bin/telegram-cli --help\r\ntelegram-cli Usage\r\n --phone/-u specify username (would not be asked during authorization)\r\n --rsa-key/-k specify location of public key (possible multiple entries)\r\n --verbosity/-v increase verbosity (0-ERROR 1-WARNIN 2-NOTICE 3+-DEBUG-levels)\r\n --enable-msg-id/-N message num mode\r\n --config/-c config file name\r\n --profile/-p use specified profile\r\n --log-level/-l log level\r\n --sync-from-start/-f during authorization fetch all messages since registration\r\n --disable-auto-accept/-E disable auto accept of encrypted chats\r\n --lua-script/-s lua script file\r\n --wait-dialog-list/-W send dialog_list query and wait for answer before reading input\r\n --disable-colors/-C disable color output\r\n --disable-readline/-R disable readline\r\n --alert/-A enable bell notifications\r\n --daemonize/-d daemon mode\r\n --logname/-L <log-name> log file name\r\n --username/-U <user-name> change uid after start\r\n --groupname/-G <group-name> change gid after start\r\n --disable-output/-D disable output\r\n --tcp-port/-P <port> port to listen for input commands\r\n --udp-socket/-S <socket-name> unix socket to create\r\n --exec/-e <commands> make commands end exit\r\n --disable-names/-I use user and chat IDs in updates instead of names\r\n --enable-ipv6/-6 use ipv6 (may be unstable)\r\n --help/-h prints this help\r\n --accept-any-tcp accepts tcp connections from any src (only loopback by default)\r\n --disable-link-preview disables server-side previews to links\r\n --bot/-b bot mode\r\n --json prints answers and values in json format\r\n --permanent-msg-ids use permanent msg ids\r\n --permanent-peer-ids use permanent peer ids\n
$ bin/telegram-cli -e help\r\nTelegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman\r\nTelegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.\r\nThis is free software, and you are welcome to redistribute it\r\nunder certain conditions; type `show_license' for details.\r\nTelegram-cli uses libtgl version 2.1.0\r\nTelegram-cli includes software developed by the OpenSSL Project\r\nfor use in the OpenSSL Toolkit. (http://www.openssl.org/)\r\nI: config dir=[/home/pi/.telegram-cli]\r\n[33;1maccept_secret_chat <secret chat> Accepts secret chat. Only useful with -E option\r\nadd_contact <phone> <first name> <last name> Tries to add user to contact list\r\nblock_user <user> Blocks user\r\nbroadcast <user>+ <text> Sends text to several users at once\r\nchannel_get_admins <channel> [limit=100] [offset=0] Gets channel admins\r\nchannel_get_members <channel> [limit=100] [offset=0] Gets channel members\r\nchannel_info <channel> Prints info about channel (id, members, admin, etc.)\r\nchannel_invite <channel> <user> Invites user to channel\r\nchannel_join <channel> Joins to channel\r\nchannel_kick <channel> <user> Kicks user from channel\r\nchannel_leave <channel> Leaves from channel\r\nchannel_list [limit=100] [offset=0] List of last channels\r\nchannel_set_about <channel> <about> Sets channel about info.\r\nchannel_set_admin <channel> <admin> <type> Sets channel admin. 0 - not admin, 1 - moderator, 2 - editor\r\nchannel_set_username <channel> <username> Sets channel username info.\r\nchannel_set_photo <channel> <filename> Sets channel photo. Photo will be cropped to square\r\nchat_add_user <chat> <user> [msgs-to-forward] Adds user to chat. Sends him last msgs-to-forward message from this chat. Default 100\r\nchat_del_user <chat> <user> Deletes user from chat\r\nchat_info <chat> Prints info about chat (id, members, admin, etc.)\r\nchat_set_photo <chat> <filename> Sets chat photo. Photo will be cropped to square\r\nchat_upgrade <chat> Upgrades chat to megagroup\r\nchat_with_peer <peer> Interface option. All input will be treated as messages to this peer. Type /quit to end this mode\r\nclear Clears all data and exits. For debug.\r\ncontact_list Prints contact list\r\ncontact_search username Searches user by username\r\ncreate_channel <name> <about> <user>+ Creates channel with users\r\ncreate_group_chat <name> <user>+ Creates group chat with users\r\ncreate_secret_chat <user> Starts creation of secret chat\r\ndel_contact <user> Deletes contact from contact list\r\ndelete_msg <msg-id> Deletes message\r\ndialog_list [limit=100] [offset=0] List of last conversations\r\nexport_card Prints card that can be imported by another user with import_card method\r\nexport_channel_link Prints channel link that can be used to join to channel\r\nexport_chat_link Prints chat link that can be used to join to chat\r\nfwd <peer> <msg-id>+ Forwards message to peer. Forward to secret chats is forbidden\r\nfwd_media <peer> <msg-id> Forwards message media to peer. Forward to secret chats is forbidden. Result slightly differs from fwd\r\nget_terms_of_service Prints telegram's terms of service\r\nget_message <msg-id> Get message by id\r\nget_self Get our user info\r\nhelp [command] Prints this help\r\nhistory <peer> [limit] [offset] Prints messages with this peer (most recent message lower). Also marks messages as read\r\nimport_card <card> Gets user by card and prints it name. You can then send messages to him as usual\r\nimport_chat_link <hash> Joins to chat by link\r\nimport_channel_link <hash> Joins to channel by link\r\nload_audio <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nload_channel_photo <channel> Downloads file to downloads dirs. Prints file name after download end\r\nload_chat_photo <chat> Downloads file to downloads dirs. Prints file name after download end\r\nload_document <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nload_document_thumb <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nload_file <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nload_file_thumb <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nload_photo <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nload_user_photo <user> Downloads file to downloads dirs. Prints file name after download end\r\nload_video <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nload_video_thumb <msg-id> Downloads file to downloads dirs. Prints file name after download end\r\nmain_session Sends updates to this connection (or terminal). Useful only with listening socket\r\nmark_read <peer> Marks messages with peer as read\r\nmsg <peer> <text> Sends text message to peer\r\nmsg <peer> <kbd> <text> Sends text message to peer with custom kbd\r\npost <peer> <text> Sends text message to peer as admin\r\npost_audio <peer> <file> Posts audio to peer\r\npost_document <peer> <file> Posts document to peer\r\npost_file <peer> <file> Sends document to peer\r\npost_location <peer> <latitude> <longitude> Sends geo location\r\npost_photo <peer> <file> Sends photo to peer\r\npost_text <peer> <file> Sends contents of text file as plain text message\r\npost_video <peer> <file> Sends video to peer\r\nquit Quits immediately\r\nrename_channel <channel> <new name> Renames channel\r\nrename_chat <chat> <new name> Renames chat\r\nrename_contact <user> <first name> <last name> Renames contact\r\nreply <msg-id> <text> Sends text reply to message\r\nreply_audio <msg-id> <file> Sends audio to peer\r\nreply_contact <msg-id> <phone> <first-name> <last-name> Sends contact (not necessary telegram user)\r\nreply_document <msg-id> <file> Sends document to peer\r\nreply_file <msg-id> <file> Sends document to peer\r\nreply_location <msg-id> <latitude> <longitude> Sends geo location\r\nreply_photo <msg-id> <file> Sends photo to peer\r\nreply_video <msg-id> <file> Sends video to peer\r\nresolve_username username Searches user by username\r\nsafe_quit Waits for all queries to end, then quits\r\nsearch [peer] [limit] [from] [to] [offset] pattern Search for pattern in messages from date from to date to (unixtime) in messages with peer (if peer not\r\npresent, in all messages)\r\nsend_audio <peer> <file> Sends audio to peer\r\nsend_contact <peer> <phone> <first-name> <last-name> Sends contact (not necessary telegram user)\r\nsend_document <peer> <file> Sends document to peer\r\nsend_file <peer> <file> Sends document to peer\r\nsend_location <peer> <latitude> <longitude> Sends geo location\r\nsend_photo <peer> <file> Sends photo to peer\r\nsend_text <peer> <file> Sends contents of text file as plain text message\r\nsend_typing <peer> [status] Sends typing notification. You can supply a custom status (range 0-10): none, typing, cancel, record video, upload video, recor\r\nd audio, upload audio, upload photo, upload document, geo, choose contact.\r\nsend_typing_abort <peer> Sends typing notification abort\r\nsend_video <peer> <file> Sends video to peer\r\nset <param> <value> Sets value of param. Currently available: log_level, debug_verbosity, alarm, msg_num\r\nset_password <hint> Sets password\r\nset_profile_name <first-name> <last-name> Sets profile name.\r\nset_profile_photo <filename> Sets profile photo. Photo will be cropped to square\r\nset_ttl <secret chat> Sets secret chat ttl. Client itself ignores ttl\r\nset_username <name> Sets username.\r\nset_phone_number <phone> Changes the phone number of this account\r\nshow_license Prints contents of GPL license\r\nstart_bot <bot> <chat> <data> Adds bot to chat\r\nstats For debug purpose\r\nstatus_online Sets status as online\r\nstatus_offline Sets status as offline\r\nunblock_user <user> Unblocks user\r\nuser_info <user> Prints info about user (id, last online, phone)\r\nversion Prints client and library version\r\nview_audio <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_channel_photo <channel> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_chat_photo <chat> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_document <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_document_thumb <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_file <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_file_thumb <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_photo <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_user_photo <user> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_video <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview_video_thumb <msg-id> Downloads file to downloads dirs. Then tries to open it with system default action\r\nview <msg-id> Tries to view message contents\r\nvisualize_key <secret chat> Prints visualization of encryption key (first 16 bytes sha1 of it in fact)\r\n[0mAll done. Exit\r\nhalt\n
\u5927\u62b5\u306e\u3053\u3068\u306f\u51fa\u6765\u308b\u611f\u3058\u3067\u3059\uff0e
\n$ git log --decorate|head -7\r\ncommit 6547c0b21b977b327b3c5e8142963f4bc246187a (HEAD -> master, origin/master, origin/HEAD)\r\nMerge: 443793d 160231b\r\nAuthor: V V <vvaltman@aurum>\r\nDate: Wed Mar 23 14:42:53 2016 +0300\r\n\r\n Merge github.com:vysheng/tg\r\n\r\n$ dpkg-query -W libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make libssl1.0-dev\r\nlibconfig-dev:armhf 1.5-0.3\r\nlibevent-dev 2.0.21-stable-3\r\nlibjansson-dev:armhf 2.9-1\r\nliblua5.2-dev:armhf 5.2.4-1.1\r\nlibpython-dev:armhf 2.7.13-2\r\nlibreadline-dev:armhf 7.0-3\r\nlibssl-dev\r\nlibssl1.0-dev:armhf 1.0.2l-2+deb9u3\r\nlua5.2 5.2.4-1.1\r\nmake 4.1-9.1\r\n$ lsb_release -d\r\nDescription: Raspbian GNU/Linux 9.4 (stretch)\r\n$ uname -m\r\narmv7l\r\n$ cat /proc/device-tree/model ;echo\r\nRaspberry Pi 2 Model B Rev 1.1\n
$ git log --decorate|head -7\r\ncommit 6547c0b21b977b327b3c5e8142963f4bc246187a (HEAD -> master, origin/master, origin/HEAD)\r\nMerge: 443793d 160231b\r\nAuthor: V V <vvaltman@aurum>\r\nDate: Wed Mar 23 14:42:53 2016 +0300\r\n\r\n Merge github.com:vysheng/tg\r\n\r\n$ dpkg-query -W libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make libssl1.0-dev\r\nlibconfig-dev:amd64 1.5-0.4\r\nlibevent-dev 2.1.8-stable-4build1\r\nlibjansson-dev:amd64 2.11-1\r\nliblua5.2-dev:amd64 5.2.4-1.1build1\r\nlibpython-dev:amd64 2.7.15~rc1-1\r\nlibreadline-dev:amd64 7.0-3\r\nlibssl-dev\r\nlibssl1.0-dev:amd64 1.0.2n-1ubuntu5.1\r\nlua5.2 5.2.4-1.1build1\r\nmake 4.1-9.1ubuntu1\r\n$ lsb_release -d\r\nDescription: Ubuntu 18.04.1 LTS\r\n(mk)-(jobs:0)-(~/src/tg)\r\n$ uname -m\r\nx86_64\n
\u73fe\u5728\u30e1\u30fc\u30eb\u3092\u53d7\u3051\u53d6\u3089\u305a\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3059\u308b\u3060\u3051\u306e\u30db\u30b9\u30c8\u3067\u306fsSMTP\u3092\u3088\u304f\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0eMTA\u306fexim\u3084Postfix\u7b49\u3067\u3082\u826f\u3044\u306e\u3067\u3059\u304c\uff0c\u30c7\u30fc\u30e2\u30f3\u304c\u8d77\u52d5\u3057\u306a\u3044\u306e\u3067\u305d\u306e\u5206\u30bb\u30ad\u30e5\u30a2\u3067\u8a2d\u5b9a\u3082\u697d\u3067\u3059\uff0e
\n\u3057\u304b\u3057\uff0csSMTP\u306f\u6700\u8fd1\u30e1\u30f3\u30c6\u3055\u308c\u3066\u3044\u307e\u305b\u3093\uff0cDebian \u306a\u3069\u306e\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u307e\u3060\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u65b0\u6a5f\u80fd\u304c\u5165\u3063\u305f\u308a\u306f\u3057\u306a\u3044\u3067\u3057\u3087\u3046\uff0e
ssmtp is unmaintained. Consider using something like msmtp instead.\n
$ w3m -dump https://packages.qa.debian.org/s/ssmtp.html|grep versions -A11\r\nversions ... ...pool\r\n\r\no-o-stable\r\n save 2.64-7\r\noldstable\r\n save 2.64-8\r\nstable\r\n save 2.64-8\r\nunstable\r\n save 2.64-8\r\nUbuntu\r\n 2.64-8ubuntu2\r\n$ apt show ssmtp 2>/dev/null |grep Homepage\r\nHomepage: http://packages.qa.debian.org/s/ssmtp.html\n
\u305d\u3053\u3067\uff0calternativeto.net \u3067\u6319\u3052\u3089\u308c\u3066\u3044\u308b msmtp \u3092\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\u4ee5\u4e0b\u3067\u306f\u8272\u3005\u8a66\u3057\u3066\u3044\u307e\u3059\u304c\uff0c\u30b7\u30b9\u30c6\u30e0\u30e1\u30fc\u30eb\u3092\u9001\u308b\u3060\u3051\u306a\u3089 msmtp, msmtp-mta pkg \u3092\u5c0e\u5165\uff0c/etc/msmtprc \u306e\u8a2d\u5b9a\u3060\u3051\u3067ok\u3067\u3059\uff0e
Debian sid/Ubuntu 18.04 LTS \u306a\u3069\u3067\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u3042\u3063\u305f\u306e\u3067\u3053\u308c\u3092\u5c0e\u5165\u3057\u307e\u3057\u305f\uff0e
\n$ sudo apt install msmtp\n
\u8a2d\u5b9a\u4f8b\u304c /usr/share/doc/msmtp/examples/ \u4ee5\u4e0b\u306b\u3042\u308b\u306e\u3067
\n\u30b7\u30b9\u30c6\u30e0\u8a2d\u5b9a\u306e\u5834\u5408\u306f msmtprc-system.example \u3092 `/etc/msmtprc \u306bcp\u3057\u3066\u8a2d\u5b9a\uff0e
\n\u30e6\u30fc\u30b6\u8a2d\u5b9a\u306e\u5834\u5408\u306f msmtprc-user.example \u3092 ~/.msmtprc \u306bcp\u3057\u3066\u8a2d\u5b9a\u3059\u308b\uff0e
\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f root \u304c\u8aad\u307f\u66f8\u304d\u3067\u304d\u3066\uff0c\u4e00\u822c\u30e6\u30fc\u30b6\u306ematoken\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u8aad\u307f\u8fbc\u307f\u304c\u53ef\u80fd\u306a\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb /etc/msmtprc \u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\uff0e
\ndefaults \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u5171\u901a\u8a2d\u5b9a\u3092\u66f8\u304d\uff0caccount \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u56fa\u6709\u306e\u8a2d\u5b9a\u3092\u66f8\u304f\uff0eaccount \u30bb\u30af\u30b7\u30e7\u30f3\u306f\u8907\u6570\u66f8\u3051\u3066\uff0caccount default \u306b\u898f\u5b9aaccount \u3092\u6307\u5b9a\u3059\u308b\uff0e\u4ee5\u4e0b\u306e\u4f8b\u3067\u306fgmail \u304c\u898f\u5b9a\u5024\u3068\u306a\u308b\uff0e
$ sudo install /dev/null /etc/msmtprc -o root -g root -m 600\r\n$ sudo setfacl -m u:matoken:r /etc/msmtprc\r\n$ getfacl /etc/msmtprc\r\ngetfacl: Removing leading '/' from absolute path names\r\n# file: etc/msmtprc\r\n# owner: root\r\n# group: root\r\nuser::rw-\r\nuser:matoken:r--\r\ngroup::---\r\nmask::r--\r\nother::---\r\n\r\n$ sudo vi /etc/msmtprc\r\n$ sudo grep -v ^# /etc/msmtprc\r\n\r\ndefaults\r\nsyslog on\r\naliases /etc/aliases\r\n\r\ntls on\r\ntls_trust_file /etc/ssl/certs/ca-certificates.crt\r\nauth on\r\nsyslog LOG_MAIL\r\n\r\naccount gmail\r\nhost smtp.gmail.com\r\nport 587\r\nfrom example@gmail.com\r\nuser example\r\npassword porseypacdoadwif\r\n\r\naccount default : gmail\n
\u203bgmail\u306e\u591a\u8981\u7d20\u8a8d\u8a3c\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u4ee5\u4e0b\u304b\u3089\u30a2\u30d7\u30ea\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u751f\u6210\u3059\u308b\uff0e(\u4f7f\u3044\u56de\u3057\u304c\u3067\u304d\u3061\u3083\u3046\u3051\u308c\u3069\u6d41\u51fa\u3057\u305f\u3068\u304d\u306e\u5f71\u97ff\u3092\u8003\u3048\u3066\u8a2d\u5b9a\u6bce\u306b\u767a\u884c\u3059\u308b)
\n\u30e6\u30fc\u30b6\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f`~/.msmtprc` \u82e5\u3057\u304f\u306f $XDG_CONFIG_HOME/msmtp/config \u3067\u30b7\u30b9\u30c6\u30e0\u3068\u9055\u3044\uff0calias file \u3068 log \u3092\u9069\u5f53\u306a\u30d5\u30a1\u30a4\u30eb\u306b\u3057\u305f\uff0e
\n\u30a2\u30ab\u30a6\u30f3\u30c8\u3082\u5897\u3084\u3057\u3066\u307f\u305f\uff0e
\ngmail\u306e\u30a2\u30d7\u30ea\u30d1\u30b9\u30ef\u30fc\u30c9\u3082\u65b0\u305f\u306b\u767a\u884c\u3057\u305f\uff0e
$ install /dev/null ~/.msmtprc -o matoken -g matoken -m 600\r\n$ vi ~/.msmtprc\r\n$ grep -v ^# ~/.msmtprc\r\n\r\ndefaults\r\nlogfile ~/.msmtp.log\r\naliases ~/.msmtp.aliases\r\n\r\ntls on\r\ntls_trust_file /etc/ssl/certs/ca-certificates.crt\r\nauth on\r\nsyslog LOG_MAIL\r\n\r\naccount gmail\r\nhost smtp.gmail.com\r\nport 587\r\nfrom example@gmail.com\r\nuser example\r\npassword igeinleedafchygy\r\n\r\naccount yandex\r\ntls_starttls off\r\nhost smtp.yandex.com\r\nport 465\r\nfrom example@yandex.com\r\nuser example\r\npassword throjfeekdewxeib\r\n\r\naccount nifty\r\ntls_starttls off\r\nhost smtp.nifty.com\r\nport 465\r\nfrom example@nifty.com\r\nuser aaa99999\r\npassword 9Z#9999X\r\n\r\naccount default : gmail\n
msmtp \u30b3\u30de\u30f3\u30c9\u3067\u9001\u4fe1\u30c6\u30b9\u30c8\u304c\u51fa\u6765\u308b\uff0e
\n-a \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u6307\u5b9a\u3067\u304d\u308b\uff0e
\n-C \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3067\u304d\u308b\uff0e(\u30b7\u30b9\u30c6\u30e0\u3068\u30e6\u30fc\u30b6\u306e\u8a2d\u5b9a\u3092\u4e21\u65b9\u30c6\u30b9\u30c8\u3059\u308b)
$ echo \"hello system msmtp\" | msmtp -C /etc/msmtprc matohara@gmail.com\r\n$ echo \"hello user msmtp\" | msmtp -C ~/.msmtprc -a gmail matohara@gmail.com\n
\u5927\u62b5\u306eMTA\u3067\u306f . \u3067mail body \u7d42\u4e86\u3068\u306a\u308b\u304c\uff0cmsmtp\u3067\u306f`.`\u306f\u666e\u901a\u306bbody \u306b\u542b\u307e\u308c\u308b\uff0eCtrl + d \u3067\u7d42\u4e86\uff0e
$ msmtp -a gmail matohara@gmail.com\r\nSubject: hello\r\n\r\nmsmtp test\r\n.\r\ndot \u3067\u306f\u7d42\u4e86\u306b\u306a\u3089\u306a\u3044\r\nCtrl+d \u3067\u7d42\u4e86\r\n^d\n
msmtp\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e alias \u3067\u8a2d\u5b9a\u3067\u304d\u308b\uff0e
\n$ grep alias ~/.msmtprc\r\naliases ~/.msmtp.alias\r\n$ sudo grep alias /etc/msmtprc\r\naliases /etc/aliases\n
\u3053\u306ealias file\u306f\u901a\u5e38\u306ealiases \u30d5\u30a1\u30a4\u30eb\u3068\u540c\u3058\u5f62\u5f0f\u306e plain text \u3067 newaliases \u30b3\u30de\u30f3\u30c9\u3067\u306e\u5909\u63db\u306f\u4e0d\u8981\uff0e
\n\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u8907\u6570\u6307\u5b9a\u3067\u304d\u308b\uff0edefault \u3068\u3044\u3046\u540d\u524d\u306f\u898f\u5b9a\u30a2\u30c9\u30ec\u30b9\u3068\u306a\u308b\uff0e
root: hoge@example.com, fuga@example.com\r\ndefault: piyo@example.com\n
\u4ee5\u524d\u306ealiases \u30d5\u30a1\u30a4\u30eb\u3092\u6d41\u7528\u3057\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u307f\u305f\u3068\u3053\u308d\uff0c
\n# /etc/aliases\r\nmailer-daemon: postmaster\r\npostmaster: root\r\nnobody: root\r\nhostmaster: root\r\nusenet: root\r\nnews: root\r\nwebmaster: root\r\nwww: root\r\nftp: root\r\nabuse: root\r\nnoc: root\r\nsecurity: root\r\nroot: matohara@gmail.com\r\ndefault: matohara@gmail.com\n
\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u30a8\u30e9\u30fc\u3068\u306a\u3063\u305f\uff0ealias\u5148\u306f\u30e6\u30fc\u30b6\u540d\u3067\u306f\u30a8\u30e9\u30fc\u3068\u306a\u308b\u3088\u3046\uff0e
\n$ echo hello | sudo msmtp -C /etc/msmtprc root\r\nmsmtp: /etc/aliases: line 2: invalid address 'postmaster'\n
\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u305d\u308c\u305e\u308c\u306b\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u6307\u5b9a\u3059\u308b\u3068\u671f\u5f85\u3057\u305f\u52d5\u4f5c\u3068\u306a\u3063\u305f\uff0e
\n$ sudo sed -i -e 's/ root$\\| postmaster$/matohara@gmail.com/' /etc/aliases\r\n$ cat /etc/aliases\r\n# /etc/aliases\r\nmailer-daemon:matohara@gmail.com\r\npostmaster:matohara@gmail.com\r\nnobody:matohara@gmail.com\r\nhostmaster:matohara@gmail.com\r\nusenet:matohara@gmail.com\r\nnews:matohara@gmail.com\r\nwebmaster:matohara@gmail.com\r\nwww:matohara@gmail.com\r\nftp:matohara@gmail.com\r\nabuse:matohara@gmail.com\r\nnoc:matohara@gmail.com\r\nsecurity:matohara@gmail.com\r\nroot: matohara@gmail.com\r\ndefault: matohara@gmail.com\n
\u30d1\u30b9\u30ef\u30fc\u30c9\u3092gpg\u3067\u6697\u53f7\u5316\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306b\u683c\u7d0d\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\uff0e\u3053\u306e\u5834\u5408\u30a2\u30ab\u30a6\u30f3\u30c8\u3054\u3068\u306b\u30d5\u30a1\u30a4\u30eb\u304c\u5fc5\u8981\u306a\u306e\u304c\u5c11\u3057\u9762\u5012\uff0e
\npassword porseypacdoadwif \u306e\u5834\u5408 porseypacdoadwif \u90e8\u5206\u3060\u3051\u3092\u6697\u53f7\u5316\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u683c\u7d0d\u3059\u308b\uff0e(\u306f\u3058\u3081password \u3082\u542b\u3081\u3066\u3057\u307e\u3044\u5931\u6557\u3057\u305f)
$ grep ^password\\ ~/.msmtprc | head -1 | awk {'print $2'} | gpg2 --default-recipient-self -e - > ~/.msmtp-password-gmail.gpg\r\n$ grep ^password\\ ~/.msmtprc | head -2 | tail -1 | awk {'print $2'} | gpg2 --default-recipient-self -e - > ~/.msmtp-password-yandex.gpg\r\n$ grep ^password\\ ~/.msmtprc | tail -1 | awk {'print $2'} | gpg2 --default-recipient-self -e - > ~/.msmtp-password-nifty.gpg\nmsmtprc \u306e password \u3092\u524a\u9664\u3057\u3066\uff0c\u4ee3\u308f\u308a\u306b passwordeval gpg2 --no-tty -q -d \u6697\u53f7\u30d5\u30a1\u30a4\u30eb \u3068\u8a2d\u5b9a\u3092\u5909\u66f4\u3059\u308b\uff0e
$ grep ^passworde ~/.msmtprc\r\npasswordeval gpg2 --no-tty -q -d ~/.msmtp-password-gmail.gpg\r\npasswordeval gpg2 --no-tty -q -d ~/.msmtp-password-yandex.gpg\r\npasswordeval gpg2 --no-tty -q -d ~/.msmtp-password-nifty.gpg\n
\u5f8c\u306f\u3053\u308c\u307e\u3067\u306e\u3088\u3046\u306bmsmtp\u3092\u547c\u3076\u3068gpg-agent\u304c\u8d77\u52d5\u3059\u308b\uff0e
\n\u203b\u30b7\u30b9\u30c6\u30e0\u5074\u306f\u30b7\u30b9\u30c6\u30e0\u30e1\u30fc\u30eb\u304c\u9001\u308c\u306a\u304f\u306a\u308b\u306e\u3067\u3053\u306e\u8a2d\u5b9a\u3092\u3057\u306a\u3044\u307b\u3046\u304c\u3044\u3044\u3068\u601d\u3046\uff0e
\n\u30b7\u30b9\u30c6\u30e0\u30e1\u30fc\u30eb\u3067gpg agent\u3092\u5229\u7528\u3059\u308b\u306e\u306f\u591a\u5206\u7121\u7406\u306a\u306e\u3067openssl\u3067\u6697\u53f7\u5316\u3057\u3066\u307f\u308b\uff0e\u30d1\u30b9\u30ef\u30fc\u30c9\u306fNIC\u306emac address\u306b\u3057\u3066\u3042\u308b\uff0e\u6c17\u4f11\u3081\u30ec\u30d9\u30eb\u3060\u3051\u3069\u8a66\u3057\u306b\u8a2d\u5b9a\uff0e
\n\u30de\u30b7\u30f3\u304c\u4e57\u3063\u53d6\u3089\u308c\u305f\u5834\u5408\u306f\u3069\u3046\u3057\u3088\u3046\u3082\u306a\u3044\u3051\u308c\u3069 /etc/msmtprc, /etc/msmtp-password \u30d5\u30a1\u30a4\u30eb\u6d41\u51fa\u6642\u306e\u6642\u9593\u7a3c\u304e\u304f\u3089\u3044\u306b\u306f\u306a\u308b?
\nNIC \u304c\u4f7f\u3063\u3066\u3044\u306a\u3044\u3082\u306e\u3082\u542b\u3081\u5897\u6e1b\u3057\u305f\u308a\u5909\u66f4\u306b\u306a\u3063\u305f\u5834\u5408\u306f\u5fa9\u5143\u3067\u304d\u306a\u304f\u306a\u308b\u306e\u3067\u6ce8\u610f\uff0e
$ umask 0077; grep ^password\\ /etc/msmtprc | head -1 | awk {'print $2'} | sudo openssl enc -e -md sha256 -aes-256-cbc -a -A -salt -pbkdf2 -in /dev/stdin -out /etc/msmtp-password -pass pass:`hwinfo --network | grep 'Permanent HW Address' | sed 's/^.*: //' | sort -n | tr -d '\\n'`\n$ sudo openssl enc -d -md sha256 -aes-256-cbc -a -A -salt -pbkdf2 -in /etc/msmtp-password -pass pass:`hwinfo --network | grep 'Permanent HW Address' | sed 's/^.*: //' | sort -n | tr -d '\\n'`\r\nigeinleedafchygy\n
$ grep passworde /etc/msmtprc\r\npasswordeval openssl enc -d -md sha256 -aes-256-cbc -a -A -salt -pbkdf2 -in /etc/msmtp-password -pass pass:`hwinfo --network | grep 'Permanent HW Address' | sed 's/^.*: //' | sort -n | tr -d '\\n'`\n
\u203bifconfig\u3084iproute2\u3092\u4f7f\u308f\u305ahwinfo\u3092\u4f7f\u3063\u3066Permanent HW Address\u3092\u4f7f\u3063\u3066\u3044\u308b\u306e\u306fmac address\u507d\u88c5\u5bfe\u7b56
\nmsmtp \u30b3\u30de\u30f3\u30c9\u3067\u30e1\u30fc\u30eb\u304c\u9001\u4fe1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3089\uff0cmsmtp-mta pkg \u3092\u5c0e\u5165\u3059\u308b\uff0e\u3053\u308c\u3067sendmail\u30b3\u30de\u30f3\u30c9\u306b\u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30ea\u30f3\u30af\u304c\u5f35\u3089\u308c\u3066\u540c\u69d8\u306b\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\uff0e\u30b7\u30b9\u30c6\u30e0\u30e1\u30fc\u30eb\u3082\u98db\u3076\u3088\u3046\u306b\u306a\u308b\uff0e
$ sudo apt install msmtp-mta\r\n$ ls -l /usr/sbin/sendmail\r\nlrwxrwxrwx 1 root root 12 11\u6708 29 2016 /usr/sbin/sendmail -> ../bin/msmtp\n
msmtp\u306f\u30aa\u30d5\u30e9\u30a4\u30f3\u6642\u306b\u5b9f\u884c\u3059\u308b\u3068\u30a8\u30e9\u30fc\u3068\u306a\u308b\uff0e\u901a\u5e38\u306f\u5e38\u306b\u30aa\u30f3\u30e9\u30a4\u30f3\u306a\u306e\u3067\u554f\u984c\u306f\u306a\u3044\u304c\uff0c\u6301\u3061\u904b\u3073NotePC\u306a\u3069\u3067\u306f\u30aa\u30d5\u30e9\u30a4\u30f3\u30aa\u30f3\u30e9\u30a4\u30f3\u304c\u767a\u751f\u3057\u3066\u30e1\u30fc\u30eb\u306e\u9001\u4fe1\u306b\u5931\u6557\u3059\u308b\u3053\u3068\u304c\u3042\u308b\uff0e
\n$ echo 'hoge' | msmtp -a gmail matoken@gmail.com\r\nmsmtp: cannot locate host smtp.gmail.com: \u540d\u524d\u307e\u305f\u306f\u30b5\u30fc\u30d3\u30b9\u304c\u4e0d\u660e\u3067\u3059\r\nmsmtp: could not send mail (account gmail from /etc/msmtprc)\n
/usr/share/doc/msmtp/examples/ \u4ee5\u4e0b\u306e msmtpq \u82e5\u3057\u304f\u306f msmtpqueue \u306b\u683c\u7d0d\u3055\u308c\u3066\u3044\u308bscript\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u30aa\u30d5\u30e9\u30a4\u30f3\u6642\u306b\u30ad\u30e5\u30fc\u3068\u3057\u3066\u8caf\u3081\u3066\u304a\u3044\u3066\u30aa\u30f3\u30e9\u30a4\u30f3\u6642\u306b\u9001\u4fe1\u3068\u3044\u3063\u305f\u3053\u3068\u304c\u51fa\u6765\u308b\uff0e
\u3069\u3061\u3089\u3082sendmail\u3068\u7f6e\u304d\u63db\u3048\u304c\u53ef\u80fd\u306a\u306e\u3067\uff0c\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c0\u30a6\u30f3\u6642\u306b`/usr/sbin/sendmail`\u3092\u3053\u308c\u306b\u7f6e\u304d\u63db\u3048\u3066\u30aa\u30f3\u30e9\u30a4\u30f3\u6642\u306b\u623b\u3057\u3066queue\u3092\u30d5\u30e9\u30c3\u30b7\u30e5\u3059\u308b\u3088\u3046\u306b\u3059\u308b\u3068\u3044\u3044\u304b\u3082\u3057\u308c\u306a\u3044\uff0e
\nDebian/Ubuntu\u306a\u3089\u4ee5\u4e0b\u306e\u3042\u305f\u308a\u3067\uff0c
\n/etc/network/if-down.d/
\n/usr/sbin/sendmail \u3092 msmtpq or msmtpqueue \u306b\u5411\u3051\u308b
/etc/network/if-pre-up.d/
\n/usr/sbin/sendmail \u3092 msmtp \u306b\u5411\u3051\u308b
/etc/network/if-up.d/
\nqueue\u3092\u30d5\u30e9\u30c3\u30b7\u30e5
NetworkManager\u3060\u3068 /etc/NetworkManager/dispatcher.d/ \u4ee5\u4e0b\u3067\u540c\u3058\u3053\u3068\u304c\u51fa\u6765\u308b\uff0e
$ sudo gunzip /usr/share/doc/msmtp/examples/msmtpq/msmtpq.gz\r\n$ sudo chmod 755 /usr/share/doc/msmtp/examples/msmtpq/msmtpq\n
$ sudo ln -s /usr/share/doc/msmtp/examples/msmtpq/msmtpq /usr/local/bin/msmtpq\r\n$ sudo ln -s /usr/share/doc/msmtp/examples/msmtpq/msmtp-queue /usr/local/bin/msmtp-queue\n
$ install -d -m 700 ~/.msmtp.queue\r\n$ install -d -m 700 ~/log\n
$ echo 'msmtpq' | msmtpq -C ~/.msmtprc -a gmail matoken@gmail.com\r\n mail for [ -C /home/matoken/.msmtprc -a gmail matoken@gmail.com ] : couldn't be sent - host not connected\r\n enqueued mail as : [ 2018-09-18-06.21.48 ] ( -C /home/matoken/.msmtprc -a gmail matoken@gmail.com ) : successful\n
$ msmtp-queue -d\r\n\r\n mail num=[ 1 ] id=[ 2018-09-18-06.21.18 ]\r\n\r\n mail num=[ 2 ] id=[ 2018-09-18-06.21.48 ]\n
$ msmtp-queue -r\r\n mail [ 1 ] [ 2018-09-18-06.21.18 ] from queue ; send was successful ; purged from queue\r\n mail [ 2 ] [ 2018-09-18-06.21.48 ] from queue ; send was successful ; purged from queue\r\n$ msmtp-queue -d\r\n\r\n no mail in queue\n
$ sudo ln -s /usr/share/doc/msmtp/examples/msmtpqueue/msmtp-enqueue.sh /usr/local/bin/msmtp-enqueue.sh\r\n$ sudo ln -s /usr/share/doc/msmtp/examples/msmtpqueue/msmtp-listqueue.sh /usr/local/bin/msmtp-listqueue.sh\r\n~$ sudo ln -s /usr/share/doc/msmtp/examples/msmtpqueue/msmtp-runqueue.sh /usr/local/bin/msmtp-runqueue.sh\n
$ echo 'queue' | msmtp-enqueue.sh -C ~/.msmtprc -a gmail matoken@gmail.com\n
$ msmtp-listqueue.sh\r\nNo mail in queue\n
egrep -s --colour -h '(^From:|^To:|^Subject:)' \"$i\" || echo \"No mail in queue\";\n
$ ls -lA ~/.msmtpqueue/\r\n\u5408\u8a08 8\r\n-rw------- 1 matoken matoken 7 9\u6708 18 00:15 2018-09-18-00.15.53.mail\r\n-rw------- 1 matoken matoken 53 9\u6708 18 00:15 2018-09-18-00.15.53.msmtp\n
$ msmtp-listqueue.sh\r\nNo mail in queue\r\n\r\nSubject: offline><\n
$ msmtp-runqueue.sh\r\n*** Sending 2018-09-18-00.15.53.mail to -C /home/matoken/.msmtprc -a gmail matoken@gmail.com ...\r\n2018-09-18-00.15.53.mail sent successfully\r\n*** Sending 2018-09-18-00.27.21.mail to -C /home/matoken/.msmtprc -a gmail matoken@gmail.com ...\r\n2018-09-18-00.27.21.mail sent successfully\n
\uff03sudo\u306e\u5834\u5408\u3082 ~root/.msmtpqueue/ \u3060\u3063\u305f\uff0e
\n$ echo \"hello msmtp\" | sudo msmtp -a gmail matohara@gmail.com\r\nmsmtp: envelope from address matohara@gmail.com not accepted by the server\r\nmsmtp: server message: 530 5.7.0 Must issue a STARTTLS command first. k126-v6sm14991126pgk.26 - gsmtp\r\nmsmtp: could not send mail (account gmail from /etc/msmtprc)\n
msmtp: network read error: \u63a5\u7d9a\u304c\u76f8\u624b\u304b\u3089\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f\r\nmsmtp: could not send mail (account nifty from /etc/msmtprc)\n
$ dpkg-query -W msmtp msmtp-mta gnupg2 openssl\r\ngnupg2 2.1.18-8~deb9u2\r\nmsmtp 1.6.6-1\r\nmsmtp-mta 1.6.6-1\r\nopenssl 1.1.0f-3+deb9u2\r\n$ lsb_release -d\r\nDescription: Raspbian GNU/Linux 9.4 (stretch)\r\n$ uname -m\r\narmv7l\n
$ dpkg-query -W msmtp msmtp-mta gnupg2 openssl\r\ngnupg2 2.2.4-1ubuntu1.1\r\nmsmtp 1.6.6-1\r\nmsmtp-mta 1.6.6-1\r\nopenssl 1.1.0g-2ubuntu4.1\r\n$ lsb_release -d\r\nDescription: Ubuntu 18.04.1 LTS\r\n$ uname -m\r\nx86_64\n
$ dpkg-query -W msmtp msmtp-mta gnupg2 openssl\r\ngnupg2 2.2.10-1\r\nmsmtp 1.6.7-1\r\nmsmtp-mta\r\nopenssl 1.1.1-1\r\n$ lsb_release -d\r\nDescription: Debian GNU/Linux unstable (sid)\r\n$ uname -m\r\nx86_64\n
crontab \u3067\u5b9f\u884c\u3055\u308c\u305f\u30b3\u30de\u30f3\u30c9\u306e\u51fa\u529b\u306f\u30e1\u30fc\u30eb\u3067\u9001\u3089\u308c\u307e\u3059\u304c\uff0c\u3053\u306e\u3068\u304d\u306e\u4ef6\u540d\u306f\u300cCron <\u30e6\u30fc\u30b6\u540d@\u30db\u30b9\u30c8\u540d> \u5b9f\u884c\u30b3\u30de\u30f3\u30c9\u300d\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff0e
\n15 7 * * * echo \"cron subject\"\n
Subject: Cron <matoken@T430s> echo \"cron subject\"\r\n\r\ncron subject\n
Cron <matoken@T430s> nice -n 19 ionice -c 3 rsync -avxze \"ssh -i\u2026\u2026\r\nCron <root@T430s> nice -n 19 ionice -c 3 rsync -avxze \"ssh -i\u2026\u2026\r\nCron <root@T430s> nice -n 19 ionice -c 3 rsync -avxze \"ssh -i\u2026\u2026\n
\u5206\u304b\u308a\u3065\u3089\u3044\u306e\u3067\u81ea\u5206\u3067\u4ef6\u540d\u3092\u4ed8\u3051\u305f\u3044\u3068\u3053\u308d\u3067\u3059\uff0e
\n: \u306f shell \u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3067\u4f55\u3082\u305b\u305a\u6b63\u5e38\u7d42\u4e86\u3057\u307e\u3059\uff0e
\n\u30b3\u30de\u30f3\u30c9\u306a\u306e\u3067 # \u3068\u9055\u3044\uff0c; \u306e\u5f8c\u306b\u30b3\u30de\u30f3\u30c9\u3092\u66f8\u304f\u3068\u305d\u306e\u5f8c\u306e\u30b3\u30de\u30f3\u30c9\u306f\u89e3\u91c8\u3055\u308c\u307e\u3059\uff0e
$ : #\u4f55\u3082\u3057\u306a\u3044\r\n$ : hoge\r\n$ : echo hoge\r\n$ : rm -rf *\r\n$ : $(hostname) #\u30b3\u30de\u30f3\u30c9\u3082\u5c55\u958b\u305b\u305a\u4f55\u3082\u3057\u306a\u3044\r\n$ : `whoami`\r\n$ : hoge; echo fuga #;\u306e\u5f8c\u306f\u89e3\u91c8\u3055\u308c\u308b\r\nfuga\r\n$ # hoge\r\n$ # hoge; echo fuga\n
\u3053\u308c\u3092crontab\u306e\u982d\u306b\u66f8\u304f\u3068\u3053\u3046\u3044\u3046\u611f\u3058\u306b\u306a\u308a\u307e\u3059\uff0e
\n29 6 * * * : cron subject; echo \"hello\"\n
Subject: Cron <matoken@T430s> : cron subject; echo \"hello\"\r\n\r\nhello\n
\u5c11\u3057\u308f\u304b\u308a\u3084\u3059\u304f\u306a\u308a\u307e\u3057\u305f\uff0e
\n\u3053\u308c\u306f\u3061\u3087\u3063\u3068\u53cd\u5247\u306a\u611f\u3058\u304c\u3059\u308b\u306e\u3067\u3059\u304c\u4ef6\u540d\u306b\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u7d50\u679c\u3092\u5165\u308c\u305f\u308a\uff0c\u982d\u306e\u90e8\u5206\u3082\u66f8\u304d\u63db\u3048\u305f\u3044\u5834\u5408\u306fcron\u3060\u3051\u3067\u306f\u3067\u304d\u306a\u3055\u305d\u3046\u306a\u306e\u3067mail\u30b3\u30de\u30f3\u30c9\u7d4c\u7531\u3067\u9001\u4fe1\u3057\u3066\u307f\u307e\u3059\uff0e\u4eca\u56demailutils\u306email\u30b3\u30de\u30f3\u30c9\u3092\u5229\u7528\u3057\u307e\u3057\u305f\u304c\uff0cbsd-mailx\u3084mutt\u7b49\u3005\u3082\u3082\u3061\u308d\u3093\u4f7f\u3048\u307e\u3059\uff0e
\n45 6 * * * echo \"cron test\" | mail -s \"$(hostname)@$(whoami) cron Subject : $(date +\\%F)\" matoken+cron@example.com\n
Subject: T430s@matoken cron Subject : 2018-09-13\r\nX-Mailer: mail (GNU Mailutils 3.4)\r\n\r\ncron test\n
mail \u30b3\u30de\u30f3\u30c9\u306e -s \u30aa\u30d7\u30b7\u30e7\u30f3\u90e8\u5206\u304c\u4ef6\u540d\u306b\u306a\u308a\u307e\u3059\uff0e\u305d\u306e\u5f8c\u308d\u304c\u5b9b\u5148\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff0ebody\u306fcron\u306e\u51fa\u529b\u3092\u30d1\u30a4\u30d7\u304b\u3089\u53d7\u3051\u53d6\u308a\u307e\u3059\uff0e
\nSTDERR \u306e\u51fa\u529b\u304c\u3042\u3063\u305f\u5834\u5408cron\u3067\u30e1\u30fc\u30eb\u304c\u9001\u3089\u308c\u3066\u3057\u307e\u3044\u307e\u3059\uff0email\u30b3\u30de\u30f3\u30c9\u3068\u5408\u308f\u305b\u30661\u5ea6\u306b2\u901a\u5c4a\u304f\u3053\u3068\u306b\uff0e
\n\u5b9f\u884c\u30b3\u30de\u30f3\u30c9\u306e\u5f8c\u308d\u306b 2>&1 \u3092\u4ed8\u3051\u3066 STDERR \u3092 STDOUT \u306b\u6e21\u3057\u3066mail\u30b3\u30de\u30f3\u30c9\u3060\u3051\u306b\u3057\u307e\u3059\uff0e
45 6 * * * echo \"cron test\" 2>&1 | mail -s \"$(hostname)@$(whoami) cron Subject : $(date +\\%F)\" matoken+cron@example.com\n
crontab \u306e\u5834\u5408\u30b3\u30de\u30f3\u30c9\u306e\u51fa\u529b\u304c\u306a\u3051\u308c\u3070\u30e1\u30fc\u30eb\u304c\u9001\u3089\u308c\u307e\u305b\u3093\u304c\uff0c\u3053\u306e\u30b3\u30de\u30f3\u30c9\u3067\u306f NULL \u3067\u3082\u30e1\u30fc\u30eb\u304c\u9001\u4fe1\u3055\u308c\u307e\u3059\uff0e
\n\u672a\u89e3\u6c7a\uff0e
MAILTO=\"\"\n
20 6 * * * echo \"cron subject\" > /dev/null 2>&1\n
/var/spool/mail/\u30e6\u30fc\u30b6\u540d \u306e\u30ed\u30fc\u30ab\u30eb\u306b\u306f\u30e1\u30fc\u30eb\u304c\u3069\u3068\u304f\u3051\u3069\uff0c\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u6307\u5b9a\u3057\u3066\u3082\u5c4a\u304b\u306a\u3044\u5834\u5408\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u306e\u8a2d\u5b9a\u304c\u51fa\u6765\u3066\u3044\u306a\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0(sSMTP/msmtp\u7b49\u306f\u30c7\u30fc\u30e2\u30f3\u304c\u8d77\u52d5\u3057\u306a\u3044\u306e\u3067\u30e1\u30fc\u30eb\u3092\u53d7\u3051\u53d6\u3089\u305a\u9001\u4fe1\u3059\u308b\u3060\u3051\u306a\u3089\u304a\u3059\u3059\u3081)\u3092\u8a2d\u5b9a\u3057\u3066\u304b\u3089\u518d\u5ea6\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046\uff0e
\n$ man cron | grep -m1 cron\r\n cron - daemon to execute scheduled commands (Vixie Cron)\r\n$ dpkg-query -W cron mailutils\r\ncron 3.0pl1-128.1ubuntu1\r\nmailutils 1:3.4-1\r\n$ lsb_release -d\r\nDescription: Ubuntu 18.04.1 LTS\r\n$ uname -m\r\nx86_64\n
$ man cron | grep -m1 cron\r\n cron - \u4e88\u5b9a\u3055\u308c\u305f\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u30c7\u30fc\u30e2\u30f3(Vixie Cron)\r\n$ dpkg-query -W cron mailutils\r\ncron 3.0pl1-130\r\nmailutils 1:3.4-1+b1\r\n$ lsb_release -d\r\nDescription: Debian GNU/Linux unstable (sid)\r\n$ uname -m\r\nx86_64\n
\u4ee5\u524d\u306f awesome WM \u3067\u306e\u8f1d\u5ea6\u8abf\u6574\u306f xbacklight \u3092\u5229\u7528\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u52d5\u4f5c\u3057\u306a\u304f\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e
$ xbacklight -get\r\nNo outputs have backlight property\n\u6700\u8fd1\u307e\u3067 ThinkPad \u304c1\u53f0\u3060\u3051\u306b\u306a\u3063\u3066\u6301\u3061\u904b\u3073\u3092\u3057\u306a\u304f\u306a\u3063\u3066\u3044\u305f\u306e\u3082\u3042\u308a\uff0c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u611f\u3058\u3067 /sys/class/backlight/intel_backlight/brightness \u306b\u6295\u3052\u3066\u3044\u307e\u3057\u305f\uff0e
$ echo 800 | sudo tee /sys/class/backlight/intel_backlight/brightness\r\n800\n\u3057\u304b\u3057\uff0c\u6700\u8fd1 T430s/X201i \u306e\u30b8\u30e3\u30f3\u30af\u3092\u5165\u624b\u3057\u3066\u88dc\u4fee\u3057\u3066\u6301\u3061\u904b\u3079\u308b ThinkPad \u304c\u51fa\u6765\u307e\u3057\u305f :)
\n\u305d\u3046\u306a\u308b\u3068\u5834\u6240\u306b\u3088\u308a\u660e\u308b\u3055\u304c\u5909\u308f\u3063\u305f\u308a\uff0c\u8f1d\u5ea6\u3092\u4e0b\u3052\u3066\u30d0\u30c3\u30c6\u30ea\u30fc\u6301\u3061\u3092\u826f\u304f\u3057\u305f\u308a\u3057\u305f\u3044\u3068\u3044\u3046\u611f\u3058\u3067\u3053\u307e\u3081\u306b\u8d77\u52d5\u8abf\u6574\u304c\u3057\u305f\u304f\u306a\u308a\u307e\u3057\u305f\uff0e
\n\u4ed6\u306ewm\u306epower manager\u3092\u4f7f\u3046\u3068\u4e00\u5fdc\u8f1d\u5ea6\u8abf\u6574\u3067\u304d\u308b\u3051\u3069\u3042\u307e\u308a\u5b09\u3057\u304f\u306a\u3044\u306a\u3068\u3044\u3046\u3053\u3068\u3067\u3061\u3087\u3063\u3068\u63a2\u3057\u3066\u307f\u308b\u3068\uff0c Light \u3068\u3044\u3046\u3082\u306e\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e
Arch Linux, Fedora \u306b\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0e\u4eca\u56de\u306fsource\u304b\u3089Ubuntu\u3068Debian\u306b\u5c0e\u5165\u3057\u307e\u3057\u305f\uff0e
\n$ git clone https://github.com/haikarainen/light\r\n$ cd light\r\n$ ./autogen.sh\r\n$ ./configure\r\n$ make\r\n$ sudo checkinstall\n\u3068\u308a\u3042\u3048\u305a\u305d\u306e\u307e\u307e\u65e2\u5b9a\u5024\u3067build\u3057\u307e\u3057\u305f\uff0e
\n$ light -G #\u8f1d\u5ea6\u53d6\u5f97\r\n56.34\r\n$ light -A 10 #\u8f1d\u5ea6 10 Up\r\n$ light -U 10 #\u8f1d\u5ea6 10 Down\n\u554f\u984c\u306a\u304f\u52d5\u304d\u307e\u3057\u305f\uff0e\u4ed6\u306b\u3082\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3042\u308a\u307e\u3059\u304c\uff0c\u3068\u308a\u3042\u3048\u305a\u3053\u308c\u3060\u3051\u52d5\u3051\u3070\u554f\u984c\u3042\u308a\u307e\u305b\u3093\uff0e
\nawesome WM \u306e ~/.config/awesome/lua.rc \u306b\u66f8\u3044\u3066\u307f\u307e\u3059\uff0e
diff --git a/rc.lua b/rc.lua\r\nindex f9a7467..9f461b9 100644\r\n--- a/rc.lua\r\n+++ b/rc.lua\r\n@@ -289,8 +289,12 @@ globalkeys = awful.util.table.join(\r\n\r\n -- Brightness Controle\r\n--- awful.key({ }, \"XF86MonBrightnessDown\", function () awful.util.spawn(\"xbacklight - 5\") end),\r\n -- awful.key({ }, \"XF86MonBrightnessUp\", function () awful.util.spawn(\"xbacklight + 5\") end),\r\n+-- awful.key({ }, \"XF86MonBrightnessDown\", function () awful.util.spawn(\"xbacklight - 5\") end),\r\n+ -- \u4ee5\u4e0b\u306e light \u3092\u5229\u7528\r\n+ -- \"haikarainen/light: GNU/Linux application to control backlights\" https://github.com/haikarainen/light\r\n+ awful.key({ }, \"XF86MonBrightnessUp\", function () awful.util.spawn(\"light -A 10\") end),\r\n+ awful.key({ }, \"XF86MonBrightnessDown\", function () awful.util.spawn(\"light -U 10\") end),\r\n\r\n -- lock screen\r\n awful.key({ \"Mod1\" }, \"l\", function () awful.util.spawn( \"xscreensaver-command -activate\",false) end),\nawesome WM \u306e restart \u3092\u3057\u3066\uff0c\u8f1d\u5ea6\u8abf\u6574\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3061\u3083\u3093\u3068\u8f1d\u5ea6\u304cUp/Down\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e
\n\u3053\u308c\u3067\u5916\u51fa\u5148\u3067\u3082\u56f0\u308a\u307e\u305b\u3093 :)
$ $ dpkg-query -W awesome*\r\nawesome 4.2-4\r\nawesome-doc\r\nawesome-extra 2017110501\r\n$ lsb_release -d\r\nDescription: Ubuntu 18.04.1 LTS\r\n$ uname -m\r\nx86_64\n$ dpkg-query -W awesome*\r\nawesome 4.2-5\r\nawesome-doc 4.2-5\r\nawesome-extra 2018041201\r\n$ lsb_release -d\r\nDescription: Debian GNU/Linux unstable (sid)\r\n$ uname -m\r\nx86_64\n\u5148\u65e5\u30dd\u30bf\u30ea\u30f3\u30b0\u306b\u884c\u3063\u305f\u306e\u3067\u3059\u304c\uff0c\u305d\u306e\u6642\u6301\u3063\u3066\u3044\u3063\u305f\u30ab\u30e1\u30e9\u306e\u6642\u8a08\u304c\u521d\u671f\u5316\u3055\u308c\u3066\u3057\u307e\u3063\u3066\u3044\u3066\u30aa\u30d5\u30bb\u30c3\u30c8\u304c6\u5e74\u534a\u4ee5\u4e0a\u3042\u308a\u307e\u3057\u305f\uff0e
\n(\u4e88\u5099\u30d0\u30c3\u30c6\u30ea\u30fc\u304c\u6b7b\u3093\u3067\u30d0\u30c3\u30c6\u30ea\u30fc\u5145\u96fb\u4e2d\u306b\u60c5\u5831\u304c\u521d\u671f\u5316\u3055\u308c\u3066\u3057\u307e\u3046)
\u3053\u308c\u3092\u6b63\u78ba\u306a\u64ae\u5f71\u6642\u9593\u306b\u5909\u66f4\u3057\u307e\u3059\uff0e\u3044\u3064\u3082\u306fexiv2\u3067\u8a2d\u5b9a\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u4eca\u56de\u3053\u308c\u3067\u306f\u3046\u307e\u304f\u884c\u304b\u306a\u304b\u3063\u305f\u306e\u3067exiftime\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3057\u307e\u3057\u305f\uff0e
\u5148\u305a\u30ab\u30e1\u30e9\u5185\u6642\u8a08\u3068\u5b9f\u969b\u306e\u6642\u8a08\u306e\u5dee\u5206\u3092\u6c42\u3081\u307e\u3059\uff0e\u6b63\u78ba\u306a\u6642\u9593\u3092\u64ae\u5f71(\u4eca\u56de\u306fNICT\u306eJST Clock\u3092\u64ae\u5f71)\u3057\u305f\u7d50\u679c\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3057\u305f\uff0e
\n\n$ ls --full-time DP1M0608.JPG-rw-r--r-- 1 mk mk 9043186 2012-01-02 10:27:01.000000000 +0900 DP1M0608.JPG
\u5199\u771f\u306b\u5199\u3063\u305f\u6642\u9593 -> 2018-07-17 07:32:00
\n\u305d\u308c\u305e\u308cUNIX EPOC\u306b\u5909\u63db\u3057\u3066\u5f15\u304d\u7b97\u3092\u3059\u308b\u3068\u5dee\u5206\u306f206312699\u79d2\u3067\u3057\u305f\uff0e
\n$ date +%s -d '2012-01-02 10:27:01'1325467621$ date +%s -d '2018-07-17 07:32:00'1531780320$ expr 1531780320 - 1325467621206312699
\u3044\u3064\u3082\u4f7f\u3063\u3066\u3044\u308bexiv2\u30b3\u30de\u30f3\u30c9\u306b\u3053\u306e\u79d2\u3092\u6307\u5b9a\u3057\u3066\u4fee\u6b63\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u65e5\u4ed8\u304c\u304a\u304b\u3057\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e
\n$ cp -p ./DP1M0608.JPG /tmp/DP1M0608.JPG$ exiv2 -a +206312699 /tmp/DP1M0608.JPG$ exiftime /tmp/DP1M0608.JPGexiftime: field count mismatch (DateTime)exiftime: field count mismatch (DateTimeOriginal)exiftime: field count mismatch (DateTimeDigitized)exiftime: field count mismatch (ImageUniqueID)/tmp/DP1M0608.JPG: no timestamps available$ exif /tmp/DP1M0608.JPG|grep -i dateDate and Time |25548:01:17 21:27:01Date and Time |2012:01:02 10:27:01Date and Time (Origi|25548:01:17 21:27:01Date and Time (Digit|25548:01:17 21:27:01
man\u3092\u78ba\u8a8d\u3059\u308b\u3068\uff0c\u79d2\u3060\u3051\u306e\u6307\u5b9a\u306f\u99c4\u76ee\u3067\u3061\u3083\u3093\u3068\u8a08\u7b97\u3057\u3066\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3088\u3046\u3067\u3059\uff0e\u305d\u3057\u3066\u65e5\u307e\u305f\u304e\u4ee5\u4e0a\u306f\u6307\u5b9a\u3067\u304d\u306a\u3044\u3088\u3046\u306a\u611f\u3058\u3067\u3059\uff0e\u3053\u308c\u307e\u3067\u306f\u305b\u3044\u305c\u3044\u6570\u79d2\u304b\u3089\u6570\u5206\u3057\u304b\u305a\u308c\u306a\u304b\u3063\u305f\u306e\u3067\u6c17\u3065\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u2026\u2026\uff0e
\n\n-a timeTime adjustment in the format [-]HH[:MM[:SS]]. This option is only used with the 'adjust' action. Examples: 1 adds onehour, 1:01 adds one hour and one minute, -0:00:30 subtracts 30 seconds.
\u8a08\u7b97\u3059\u308b\u306e\u304c\u9762\u5012\u306a\u306e\u3067\u5dee\u5206\u3092\u79d2\u3067\u6307\u5b9a\u3067\u304d\u308b\u30c4\u30fc\u30eb\u306f\u306a\u3044\u3060\u308d\u3046\u304b\u3068\u63a2\u3057\u3066\u307f\u308b\u3068\uff0cexiftags package\u306eexiftime\u304c\u4f7f\u3048\u305d\u3046\u3067\u3059\uff0e
\nIf val is numeric, one of either y, m, w, d, H, M, or S must be used to specify which part of the date is to be adjusted.
\u5b9f\u969b\u306b\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e
\n\u5ff5\u306e\u70ba\u30d5\u30a1\u30a4\u30eb\u3092/tmp\u306b\u30b3\u30d4\u30fc\u3057\u3066\u5148\u305a\u306f\u3053\u308c\u3067\u8a66\u3057\u307e\u3059\uff0e
\n\n$ cp -p ./DP1M0608.JPG /tmp/DP1M0608.JPG$ exiftime /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)Image Created: 2012:01:02 10:27:01Image Generated: 2012:01:02 10:27:01Image Digitized: 2012:01:02 10:27:01
-v\u3067\u30aa\u30d5\u30bb\u30c3\u30c8\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e\u4eca\u56de\u306f+206312699S\u3067206312699\u79d2\u9032\u3081\u307e\u3059\uff0e
\n$ exiftime -v +206312699S /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)Image Created: 2018:07:17 07:32:00Image Generated: 2018:07:17 07:32:00Image Digitized: 2018:07:17 07:32:00
\u5927\u4e08\u592b\u305d\u3046\u3067\u3059\uff0e
\n-v\u3060\u3051\u3067\u306f\u5b9f\u969b\u306f\u66f8\u304d\u63db\u308f\u308a\u307e\u305b\u3093-w\u3067\u5b9f\u969b\u306bexif\u3092\u66f8\u304d\u63db\u3048\u307e\u3059\uff0e
\n$ exiftime -v +206312699S -w /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)adjust time created in /tmp/DP1M0608.JPG from2012:01:02 10:27:01 to 2018:07:17 07:32:00? (y/n [n]) yImage Created: 2012:01:02 10:27:01 -> 2018:07:17 07:32:00adjust time generated in /tmp/DP1M0608.JPG from2012:01:02 10:27:01 to 2018:07:17 07:32:00? (y/n [n]) yImage Generated: 2012:01:02 10:27:01 -> 2018:07:17 07:32:00adjust time digitized in /tmp/DP1M0608.JPG from2012:01:02 10:27:01 to 2018:07:17 07:32:00? (y/n [n]) yImage Digitized: 2012:01:02 10:27:01 -> 2018:07:17 07:32:00$ exiftime /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)Image Created: 2018:07:17 07:32:00Image Generated: 2018:07:17 07:32:00Image Digitized: 2018:07:17 07:32:00
exiftool\u30b3\u30de\u30f3\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3082\u4fee\u6b63\u3057\u307e\u3059\uff0e
\n$ exiftool \"-FileModifyDate<DateTimeOriginal\" /tmp/DP1M0608.JPGWarning: Bad PrintIM size - /tmp/DP1M0608.JPG1 image files updated$ ls --full-time /tmp/DP1M0608.JPG-rw-r--r-- 1 mk mk 9043186 2018-07-17 07:32:00.000000000 +0900 /tmp/DP1M0608.JPG
OK\u305d\u3046\u3067\u3059\uff0e
\n\u672c\u756a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4e00\u6c17\u306b\u66f8\u304d\u63db\u3048\u3066\u307f\u307e\u3059\uff0e
\n\u78ba\u8a8d\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u51fa\u306a\u3044\u3088\u3046exiftime\u306b-f\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u3044\u307e\u3059\uff0e
\n$ exiftime -v +206312699S -w -f ./*.JPG./DP1M0537.JPG:exiftime: field count mismatch (ImageUniqueID)Image Created: 2012:01:01 08:46:51 -> 2018:07:16 05:51:50Image Generated: 2012:01:01 08:46:51 -> 2018:07:16 05:51:50Image Digitized: 2012:01:01 08:46:51 -> 2018:07:16 05:51:50./DP1M0538.JPG:exiftime: field count mismatch (ImageUniqueID)Image Created: 2012:01:01 08:55:16 -> 2018:07:16 06:00:15Image Generated: 2012:01:01 08:55:16 -> 2018:07:16 06:00:15Image Digitized: 2012:01:01 08:55:16 -> 2018:07:16 06:00:15:$ exiftime -v +206312699S -w -f ./*.X3F:
\u66f4\u306b\uff0cgpscorrelate\u3067\u30b8\u30aa\u30bf\u30b0\u3092\u57cb\u3081\u8fbc\u307f\u307e\u3059\uff0e
\n$ gpscorrelate -g ./2018-07-16\u9e7f\u5c4b\u30dd\u30bf.gpx -z +9 -n *.JPG$ gpscorrelate -g ./2018-07-16\u9e7f\u5c4b\u30dd\u30bf.gpx -z +9 *.JPG
\u6700\u5f8c\u306b\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u4fee\u6b63\u3057\u307e\u3059\uff0e
\n\n$ exiftool \"-FileModifyDate<DateTimeOriginal\" ./*
\u3046\u307e\u304f\u884c\u3063\u305f\u3088\u3046\u3067\u3059 :)
\n\n", "content_text": "\u5148\u65e5\u30dd\u30bf\u30ea\u30f3\u30b0\u306b\u884c\u3063\u305f\u306e\u3067\u3059\u304c\uff0c\u305d\u306e\u6642\u6301\u3063\u3066\u3044\u3063\u305f\u30ab\u30e1\u30e9\u306e\u6642\u8a08\u304c\u521d\u671f\u5316\u3055\u308c\u3066\u3057\u307e\u3063\u3066\u3044\u3066\u30aa\u30d5\u30bb\u30c3\u30c8\u304c6\u5e74\u534a\u4ee5\u4e0a\u3042\u308a\u307e\u3057\u305f\uff0e\n(\u4e88\u5099\u30d0\u30c3\u30c6\u30ea\u30fc\u304c\u6b7b\u3093\u3067\u30d0\u30c3\u30c6\u30ea\u30fc\u5145\u96fb\u4e2d\u306b\u60c5\u5831\u304c\u521d\u671f\u5316\u3055\u308c\u3066\u3057\u307e\u3046)\n\u3053\u308c\u3092\u6b63\u78ba\u306a\u64ae\u5f71\u6642\u9593\u306b\u5909\u66f4\u3057\u307e\u3059\uff0e\u3044\u3064\u3082\u306fexiv2\u3067\u8a2d\u5b9a\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u4eca\u56de\u3053\u308c\u3067\u306f\u3046\u307e\u304f\u884c\u304b\u306a\u304b\u3063\u305f\u306e\u3067exiftime\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3057\u307e\u3057\u305f\uff0e\n\u5148\u305a\u30ab\u30e1\u30e9\u5185\u6642\u8a08\u3068\u5b9f\u969b\u306e\u6642\u8a08\u306e\u5dee\u5206\u3092\u6c42\u3081\u307e\u3059\uff0e\u6b63\u78ba\u306a\u6642\u9593\u3092\u64ae\u5f71(\u4eca\u56de\u306fNICT\u306eJST Clock\u3092\u64ae\u5f71)\u3057\u305f\u7d50\u679c\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3057\u305f\uff0e\n\nJST Clock\n\n$ ls --full-time DP1M0608.JPG-rw-r--r-- 1 mk mk 9043186 2012-01-02 10:27:01.000000000 +0900 DP1M0608.JPG\n\u5199\u771f\u306b\u5199\u3063\u305f\u6642\u9593 -> 2018-07-17 07:32:00\n\u305d\u308c\u305e\u308cUNIX EPOC\u306b\u5909\u63db\u3057\u3066\u5f15\u304d\u7b97\u3092\u3059\u308b\u3068\u5dee\u5206\u306f206312699\u79d2\u3067\u3057\u305f\uff0e\n$ date +%s -d '2012-01-02 10:27:01'1325467621$ date +%s -d '2018-07-17 07:32:00'1531780320$ expr 1531780320 - 1325467621206312699\n\u3044\u3064\u3082\u4f7f\u3063\u3066\u3044\u308bexiv2\u30b3\u30de\u30f3\u30c9\u306b\u3053\u306e\u79d2\u3092\u6307\u5b9a\u3057\u3066\u4fee\u6b63\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u65e5\u4ed8\u304c\u304a\u304b\u3057\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\n\nGPS \u3067\u8272\u3005\u904a\u3076 – Speaker Deck\n\n$ cp -p ./DP1M0608.JPG /tmp/DP1M0608.JPG$ exiv2 -a +206312699 /tmp/DP1M0608.JPG$ exiftime /tmp/DP1M0608.JPGexiftime: field count mismatch (DateTime)exiftime: field count mismatch (DateTimeOriginal)exiftime: field count mismatch (DateTimeDigitized)exiftime: field count mismatch (ImageUniqueID)/tmp/DP1M0608.JPG: no timestamps available$ exif /tmp/DP1M0608.JPG|grep -i dateDate and Time |25548:01:17 21:27:01Date and Time |2012:01:02 10:27:01Date and Time (Origi|25548:01:17 21:27:01Date and Time (Digit|25548:01:17 21:27:01\nman\u3092\u78ba\u8a8d\u3059\u308b\u3068\uff0c\u79d2\u3060\u3051\u306e\u6307\u5b9a\u306f\u99c4\u76ee\u3067\u3061\u3083\u3093\u3068\u8a08\u7b97\u3057\u3066\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3088\u3046\u3067\u3059\uff0e\u305d\u3057\u3066\u65e5\u307e\u305f\u304e\u4ee5\u4e0a\u306f\u6307\u5b9a\u3067\u304d\u306a\u3044\u3088\u3046\u306a\u611f\u3058\u3067\u3059\uff0e\u3053\u308c\u307e\u3067\u306f\u305b\u3044\u305c\u3044\u6570\u79d2\u304b\u3089\u6570\u5206\u3057\u304b\u305a\u308c\u306a\u304b\u3063\u305f\u306e\u3067\u6c17\u3065\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u2026\u2026\uff0e\n -a time Time adjustment in the format [-]HH[:MM[:SS]]. This option is only used with the 'adjust' action. Examples: 1 adds one hour, 1:01 adds one hour and one minute, -0:00:30 subtracts 30 seconds. \n\u8a08\u7b97\u3059\u308b\u306e\u304c\u9762\u5012\u306a\u306e\u3067\u5dee\u5206\u3092\u79d2\u3067\u6307\u5b9a\u3067\u304d\u308b\u30c4\u30fc\u30eb\u306f\u306a\u3044\u3060\u308d\u3046\u304b\u3068\u63a2\u3057\u3066\u307f\u308b\u3068\uff0cexiftags package\u306eexiftime\u304c\u4f7f\u3048\u305d\u3046\u3067\u3059\uff0e\n If val is numeric, one of either y, m, w, d, H, M, or S must be used to specify which part of the date is to be adjusted. \n\u5b9f\u969b\u306b\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\n\u5ff5\u306e\u70ba\u30d5\u30a1\u30a4\u30eb\u3092/tmp\u306b\u30b3\u30d4\u30fc\u3057\u3066\u5148\u305a\u306f\u3053\u308c\u3067\u8a66\u3057\u307e\u3059\uff0e\n$ cp -p ./DP1M0608.JPG /tmp/DP1M0608.JPG$ exiftime /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)Image Created: 2012:01:02 10:27:01Image Generated: 2012:01:02 10:27:01Image Digitized: 2012:01:02 10:27:01\n-v\u3067\u30aa\u30d5\u30bb\u30c3\u30c8\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e\u4eca\u56de\u306f+206312699S\u3067206312699\u79d2\u9032\u3081\u307e\u3059\uff0e\n$ exiftime -v +206312699S /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)Image Created: 2018:07:17 07:32:00Image Generated: 2018:07:17 07:32:00Image Digitized: 2018:07:17 07:32:00\n\u5927\u4e08\u592b\u305d\u3046\u3067\u3059\uff0e\n-v\u3060\u3051\u3067\u306f\u5b9f\u969b\u306f\u66f8\u304d\u63db\u308f\u308a\u307e\u305b\u3093-w\u3067\u5b9f\u969b\u306bexif\u3092\u66f8\u304d\u63db\u3048\u307e\u3059\uff0e\n$ exiftime -v +206312699S -w /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)adjust time created in /tmp/DP1M0608.JPG from 2012:01:02 10:27:01 to 2018:07:17 07:32:00? (y/n [n]) yImage Created: 2012:01:02 10:27:01 -> 2018:07:17 07:32:00adjust time generated in /tmp/DP1M0608.JPG from 2012:01:02 10:27:01 to 2018:07:17 07:32:00? (y/n [n]) yImage Generated: 2012:01:02 10:27:01 -> 2018:07:17 07:32:00adjust time digitized in /tmp/DP1M0608.JPG from 2012:01:02 10:27:01 to 2018:07:17 07:32:00? (y/n [n]) yImage Digitized: 2012:01:02 10:27:01 -> 2018:07:17 07:32:00$ exiftime /tmp/DP1M0608.JPGexiftime: field count mismatch (ImageUniqueID)Image Created: 2018:07:17 07:32:00Image Generated: 2018:07:17 07:32:00Image Digitized: 2018:07:17 07:32:00\nexiftool\u30b3\u30de\u30f3\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3082\u4fee\u6b63\u3057\u307e\u3059\uff0e\n\n\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092exif\u306e\u6642\u9593\u306b\u5408\u308f\u305b\u308b \u2013 matoken’s meme\n\n$ exiftool \"-FileModifyDate<DateTimeOriginal\" /tmp/DP1M0608.JPGWarning: Bad PrintIM size - /tmp/DP1M0608.JPG 1 image files updated$ ls --full-time /tmp/DP1M0608.JPG-rw-r--r-- 1 mk mk 9043186 2018-07-17 07:32:00.000000000 +0900 /tmp/DP1M0608.JPG\nOK\u305d\u3046\u3067\u3059\uff0e\n\u672c\u756a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4e00\u6c17\u306b\u66f8\u304d\u63db\u3048\u3066\u307f\u307e\u3059\uff0e\n\u78ba\u8a8d\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u51fa\u306a\u3044\u3088\u3046exiftime\u306b-f\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u3044\u307e\u3059\uff0e\n$ exiftime -v +206312699S -w -f ./*.JPG./DP1M0537.JPG:exiftime: field count mismatch (ImageUniqueID)Image Created: 2012:01:01 08:46:51 -> 2018:07:16 05:51:50Image Generated: 2012:01:01 08:46:51 -> 2018:07:16 05:51:50Image Digitized: 2012:01:01 08:46:51 -> 2018:07:16 05:51:50 ./DP1M0538.JPG:exiftime: field count mismatch (ImageUniqueID)Image Created: 2012:01:01 08:55:16 -> 2018:07:16 06:00:15Image Generated: 2012:01:01 08:55:16 -> 2018:07:16 06:00:15Image Digitized: 2012:01:01 08:55:16 -> 2018:07:16 06:00:15 :$ exiftime -v +206312699S -w -f ./*.X3F :\n\u66f4\u306b\uff0cgpscorrelate\u3067\u30b8\u30aa\u30bf\u30b0\u3092\u57cb\u3081\u8fbc\u307f\u307e\u3059\uff0e\n$ gpscorrelate -g ./2018-07-16\u9e7f\u5c4b\u30dd\u30bf.gpx -z +9 -n *.JPG$ gpscorrelate -g ./2018-07-16\u9e7f\u5c4b\u30dd\u30bf.gpx -z +9 *.JPG\n\u6700\u5f8c\u306b\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u4fee\u6b63\u3057\u307e\u3059\uff0e\n$ exiftool \"-FileModifyDate<DateTimeOriginal\" ./*\n\u3046\u307e\u304f\u884c\u3063\u305f\u3088\u3046\u3067\u3059 :)\n\u74b0\u5883\n$ dpkg-query -W exiv2 exiftags exifexif 0.6.21-2exiftags 1.01-6build1exiv2 0.25-3.1ubuntu0.18.04.1$ lsb_release -dDescription: Ubuntu 18.04.1 LTS$ uname -mx86_64", "date_published": "2018-08-09T05:56:25+09:00", "date_modified": "2018-08-09T05:57:30+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "exif", "exiftime", "ExifTool", "exiv2", "GPS", "gpscorrelate", "photo", "Bionic Beaver(18.04LTS)", "Linux", "Ubuntu" ] } ] }$ dpkg-query -W exiv2 exiftags exifexif 0.6.21-2exiftags 1.01-6build1exiv2 0.25-3.1ubuntu0.18.04.1$ lsb_release -dDescription: Ubuntu 18.04.1 LTS$ uname -mx86_64