lftp upload files inside different folders - ftp

I need to upload files in different folders with same name, recursively to a remote folder. Here a example.
Local
|-app1-1
| |-src
| |-img
| |-static
| |-app1-2 <------Upload from this
| |-file1-1
| |-file1-2
|-app2-1
| |-src
| |-img
| |-static
| |-app2-2 <------Upload from this
| |-file2-1
| |-file2-2
Here the remote result I need.
Remote Result
|-folder1
|-folder2
|-folder3
|-static
| |-app1-2 <------Upload from this
| | |-file1-1
| | |-file1-2
| |
| |-app2-2 <------Upload from this
| | |-file2-1
| | |-file2-1
I have testing with scripts like this:
- >
lftp
-e "mirror
--include ^static/
--exclude ^\.git.*
-eRv $CI_PROJECT_DIR Remote Result/static; quit;"
sftp://$CREDENTIALS
But this generate a output not desired:
Remote Result
|-folder1
|-folder2
|-folder3
|-static
| |-app1-1 <------Upload from this
| | |-static
| | |-app1-2
| | |-file1
| | |-file2
...... (Same other folder)

Related

ansible inventory variable precedence and levels

FL - Florida,
CA - California,
US - United States
hosts.ini:
############
### CORE ###
############
[SERVERS_FL_0102]
server01-FL
server02-FL
[SERVERS_FL_0304]
server03-FL
server04-FL
[SERVERS_CA_0102]
server01-CA
server02-CA
[SERVERS_CA_0304]
server03-CA
server04-CA
############
## GROUPS ##
############
[SERVERS_FL:children]
SERVERS_FL_0102
SERVERS_FL_0304
[SERVERS_CA:children]
SERVERS_CA_0102
SERVERS_CA_0304
[SERVERS_US_0102:children]
SERVERS_FL_0102
SERVERS_CA_0102
[SERVERS_US_0304:children]
SERVERS_FL_0304
SERVERS_CA_0304
[SERVERS_US:children]
SERVERS_FL
SERVERS_CA
My question to you is: does SERVERS_US_0304 group vars file have greater precedence than SERVERS_US group vars file? For me it is difficult to say, as SERVERS_US_0304 is not inside SERVERS_US. My guess is that SERVERS_US_0304 does have greater precedence than SERVERS_US as it contains fewer groups, so it is smaller. I don't know for sure.
My question to you is: does SERVERS_US_0304 group vars file have greater precedence than SERVERS_US group vars file?
You may have a look into Understanding variable precedence and the output of
ansible-inventory -i inventory.ini --graph
#all:
|--#SERVERS_US:
| |--#SERVERS_CA:
| | |--#SERVERS_CA_0102:
| | | |--server01-CA
| | | |--server02-CA
| | |--#SERVERS_CA_0304:
| | | |--server03-CA
| | | |--server04-CA
| |--#SERVERS_FL:
| | |--#SERVERS_FL_0102:
| | | |--server01-FL
| | | |--server02-FL
| | |--#SERVERS_FL_0304:
| | | |--server03-FL
| | | |--server04-FL
|--#SERVERS_US_0102:
| |--#SERVERS_CA_0102:
| | |--server01-CA
| | |--server02-CA
| |--#SERVERS_FL_0102:
| | |--server01-FL
| | |--server02-FL
|--#SERVERS_US_0304:
| |--#SERVERS_CA_0304:
| | |--server03-CA
| | |--server04-CA
| |--#SERVERS_FL_0304:
| | |--server03-FL
| | |--server04-FL
|--#ungrouped:
... the last listed variables override all other variables ...
... Ansible gives precedence to variables that were defined more recently, more actively, and with more explicit scope. ...
If you apply tasks on the group SERVERS_US, the group var file of SERVERS_US_0304 will not be read since it is not part of the (sub)tree.
ansible-inventory -i inventory.ini SERVERS_US --graph
#SERVERS_US:
|--#SERVERS_CA:
| |--#SERVERS_CA_0102:
| | |--server01-CA
| | |--server02-CA
| |--#SERVERS_CA_0304:
| | |--server03-CA
| | |--server04-CA
|--#SERVERS_FL:
| |--#SERVERS_FL_0102:
| | |--server01-FL
| | |--server02-FL
| |--#SERVERS_FL_0304:
| | |--server03-FL
| | |--server04-FL
And so vice versa.
ansible-inventory -i inventory.ini SERVERS_US_0304 --graph
#SERVERS_US_0304:
|--#SERVERS_CA_0304:
| |--server03-CA
| |--server04-CA
|--#SERVERS_FL_0304:
| |--server03-FL
| |--server04-FL
Therefore it will somehow depend on what you try to achieve. How to build your inventory gives some examples for organizing and grouping, as well the answer about ansible_group_priority.

Laravel - How to run schedule in multiple packages

currently, i'm working with project that has some modules which need to run schedule job.
I want to take schedule job into Kernel of each module (not Kernel in app/Console directory).
I did like this Laravel 5 Package Scheduled Tasks but it only run on 1 module. The others did not run.
Can anybody please help me! Thanks
My source code has structure like this:
app
| Console
| | Commands
| | | Command.php
| | Kernel.php
bootstrap
...
Module
| Module 1
| | Console
| | | Commands
| | | | Command11.php
| | | | Command12.php
| | | Kernel.php
| Module 2
| | Console
| | | Commands
| | | | Command21.php
| | | | Command22.php
| | | Kernel.php

Find references to files, recursively

In a project where XML/JS/Java files can contain references to other such files, I'd like to be able to have a quick overview of what has to be carefully checked, when one file has been updated.
So, it means I need to eventually have a look at all files referencing the modified one, and all files referencing files which refer to the modified one, etc. (recursively on matched files).
For one level, it's quite simple:
grep -E -l -o --include=*.{xml,js,java} -r "$FILE" . | xargs -n 1 basename
But how can I automate that to match (grand-(grand-))parents?
And how can that be, maybe, made more readable? For example, with a tree structure?
For example, if the file that interests me is called modified.js...
show-referring-files-to modified.js
... I could wish such an output:
some-file-with-ref-to-modified.xml
|__ a-file-referring-to-some-file-with-ref-to-modified.js
another-one-with-ref-to-modified.xml
|__ a-file-referring-to-another-one-with-ref-to-modified.js
|__ a-grand-parent-file-having-ref-to-ref-file.xml
|__ another-file-referring-to-another-one-with-ref-to-modified.js
or any other output (even flat) which allows for quickly checking which files are potentially impacted by a change.
UPDATE -- Results of current proposed answer:
ahmsff.js
|__ahmsff.xml
| |__ahmsd.js
| | |__ahmsd.xml
| | | |__ahmst.xml
| | | | |__BESH.java
| |__ahru.js
| | |__ahru.xml
| | | |__ahrut.xml
| | | | |__ashrba.js
| | | | | |__ashrba.xml
| | | | | | |__STR.java
| | |__ahrufrp.xml
| | | |__ahru.js
| | | | |__ahru.xml
| | | | | |__ahrut.xml
| | | | | | |__ashrba.js
| | | | | | | |__ashrba.xml
| | | | | | | | |__STR.java
| | | | |__ahrufrp.xml
| | | | | |__ahru.js
| | | | | | |__ahru.xml
| | | | | | | |__ahrut.xml
| | | | | | | | |__ashrba.js
| | | | | | | | | |__ashrba.xml
| | | | | | | | | | |__STR.java
| | | | | | |__ahrufrp.xml
(...)
I'd use a shell function (for the recursion) inside an shell script:
Assuming the filenames are unique have no characters that need escaping in them:
File: /usr/local/bin/show-referring-files-to
#!/bin/sh
get_references() {
grep -F -l --include=*.{xml,js,java} -r "$1" . | grep -v "$3" | while read -r subfile; do
#read each line of the grep result into the variable subfile
subfile="$(basename "$subfile")"
echo "$2""$subfile"
get_references "$subfile" ' '"$2" "$3"'\|'"$subfile"
done
}
while test $# -gt 0; do
#loop so more than one file can be given as argument to this script
echo "$1"
get_references "$1" '|__' "$1"
shift
done
There still are lots of performance enhancements possible.
Edit: Added $3 to prevent infinite-loop.

Extract URLs (multiple lines) from texttable

My source:
+-----------+-------+----------------------+----------------------------------------------------------------------------------+
| positives | total | scan_date | url |
+===========+=======+======================+==================================================================================+
| 4 | 65 | 2015-09-21 23:29:33 | http://thebackpack.fr/wp-content/themes/salient/wpbakery/js_composer/assets/lib/ |
| | | | prettyphoto/images/prettyPhoto/light_rounded/66836487162.txt |
+-----------+-------+----------------------+----------------------------------------------------------------------------------+
| 1 | 64 | 2015-09-17 19:28:50 | http://thebackpack.fr/ |
+-----------+-------+----------------------+----------------------------------------------------------------------------------+
| 1 | 64 | 2015-09-17 08:44:16 | http://thebackpack.fr/wp-content/themes/salient/wpbakery/js_composer/assets/lib/ |
| | | | prettyphoto/images/prettyPhoto/light_rounded/ |
+-----------+-------+----------------------+----------------------------------------------------------------------------------+
I would like to extract the full URLs (Full URL in one line):
hxxp://thebackpack.fr/wp-content/themes/salient/wpbakery/js_composer/assets/lib/prettyphoto/images/prettyPhoto/light_rounded/66836487162.txt
hxxp://thebackpack.fr/
hxxp://thebackpack.fr/wp-content/themes/salient/wpbakery/js_composer/assets/lib/prettyphoto/images/prettyPhoto/light_rounded/
The multiple lines URL is my problem. I tried for example: awk '{print $9}'
Thanks in advance for your help!
You can use this awk command:
awk -F '[[:blank:]]*\\|[[:blank:]]*' 'NR<3 || NF<5{next}
$2{if (url) print url; url=$5; next}
{url=url $5}
END{print url}' file
Output:
http://thebackpack.fr/wp-content/themes/salient/wpbakery/js_composer/assets/lib/prettyphoto/images/prettyPhoto/light_rounded/66836487162.txt
http://thebackpack.fr/
http://thebackpack.fr/wp-content/themes/salient/wpbakery/js_composer/assets/lib/prettyphoto/images/prettyPhoto/light_rounded/

Linux - Postgres psql retrieving undesired table

I've got the following problem:
There is a Postgres database which I need to get data from, via a Nagios Linux distribution.
My intention is to make a resulting SELECT be saved to a .txt, that would be sent via email to me using MUTT.
Until now, I've done:
#!/bin/sh
psql -d roaming -U thdroaming -o saida.txt << EOF
\d
\pset border 2
SELECT central, imsi, mapver, camel, nrrg, plmn, inoper, natms, cba, cbaz, stall, ownms, imsi_translation, forbrat FROM vw_erros_mgisp_totalizador
EOF
My problem is:
The .txt "saida.txt" is bringing me info about the database, as follows:
Lista de relações
Esquema | Nome | Tipo | Dono
---------+----------------------------------+-----------+------------
public | apns | tabela | jmsilva
public | config_imsis_centrais | tabela | thdroaming
public | config_imsis_sgsn | tabela | postgres
(3 Registers)
+---------+---------+----------+---------+---------+--------+------------+-------+---------+----------+-------+-------+------------------+-----------+
| central | imsi | mapver | camel | nrrg | plmn | inoper | natms | cba | cbaz | stall | ownms | imsi_translation | forbrat |
+---------+---------+----------+---------+---------+--------+------------+-------+---------+----------+-------+-------+------------------+-----------+
| MCTA02 | 20210 | | | | | INOPER-127 | | | | | | | |
| MCTA02 | 20404 | | | | | INOPER-127 | | | | | | | |
| MCTA02 | 20408 | | | | | INOPER-127 | | | | | | | |
| MCTA02 | 20412 | | | | | INOPER-127 | | | | | | | |
.
.
.
How could I make the first table not to be imported to the .txt?
Remove the '\d' portion of the script which causing listing the tables in the DB you see at the top of your output. So your script will become:
#!/bin/sh
psql -d roaming -U thdroaming -o saida.txt << EOF
\pset border 2
SELECT central, imsi, mapver, camel, nrrg, plmn, inoper, natms, cba, cbaz, stall, ownms, imsi_translation, forbrat FROM vw_erros_mgisp_totalizador
EOF
To get the output to appear CSV formatted in a file named /tmp/output.csv do you can do the following:
#!/bin/sh
psql -d roaming -U thdroaming -o saida.txt << EOF
\pset border 2
COPY (SELECT central, imsi, mapver, camel, nrrg, plmn, inoper, natms, cba, cbaz, stall, ownms, imsi_translation, forbrat FROM vw_erros_mgisp_totalizador) TO '/tmp/output.csv' WITH (FORMAT CSV)
EOF

Resources